Wie öffnen Sie eine neue Aktivität klicken auf ein Element in der listview?
Kann ich nicht starten Sie eine neue Aktivität klicken auf ein Element in meiner listview. Ich will, dass onItemClick
können, öffnen Sie die ApkInfoActivity
.. Eigentlich, wenn ich auf nichts passieren.
protected void onItemClick(ListView l, View v, int position, long id, AdapterView<?> parent) {
super.onListItemClick(l, v, position, id);
final ApplicationInfo app = applist.get(position);
PackageInfo packageInfo = (PackageInfo) parent.getItemAtPosition(position);
AppDataActivity appData = (AppDataActivity) getApplicationContext();
appData.setPackageInfo(packageInfo);
Intent appInfo = new Intent(getApplicationContext(), ApkInfoActivity.class);
startActivity(appInfo);
}
Kann ich nicht finden, das problem..Wie kann ich das Problem lösen?
BEARBEITEN mit logcat:
10-29 17:14:07.710: E/AndroidRuntime(3535): FATAL EXCEPTION: main
10-29 17:14:07.710: E/AndroidRuntime(3535): java.lang.ClassCastException: android.content.pm.ApplicationInfo cannot be cast to android.content.pm.PackageInfo
10-29 17:14:07.710: E/AndroidRuntime(3535): at com.dd.application.MainActivity.onItemClick(MainActivity.java:369)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AdapterView.performItemClick(AdapterView.java:297)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AbsListView.performItemClick(AbsListView.java:1149)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2939)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.widget.AbsListView$2.run(AbsListView.java:3622)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.os.Handler.handleCallback(Handler.java:730)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.os.Handler.dispatchMessage(Handler.java:92)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.os.Looper.loop(Looper.java:137)
10-29 17:14:07.710: E/AndroidRuntime(3535): at android.app.ActivityThread.main(ActivityThread.java:5323)
10-29 17:14:07.710: E/AndroidRuntime(3535): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 17:14:07.710: E/AndroidRuntime(3535): at java.lang.reflect.Method.invoke(Method.java:525)
10-29 17:14:07.710: E/AndroidRuntime(3535): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:743)
10-29 17:14:07.710: E/AndroidRuntime(3535): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559)
10-29 17:14:07.710: E/AndroidRuntime(3535): at dalvik.system.NativeStart.main(Native Method)
Intent appInfo = new Intent(ActivityName.this, ApkInfoActivity.class); startActivity(appInfo)
dies ist ausreichend, es sei denn, Sie wollen, um einige Werte zu ApkInfoActivity
Fordern Sie auf diese Weise listView.onItemClickListener ?
auch machen Sie Ihre Liste Elemente die Knöpfe, so nehmen Sie stattdessen
Ich bin nicht mit
listView.onItemClickListener
eigentlich.. habe ich es zu tun?die Liste muss nicht Tasten..
InformationsquelleAutor David_D | 2013-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie Diese für Ihre Arbeit
new AdapterView.onItemClickListener()
.. der Fehler ist: AdapterView.onItemClickListener nicht gelöst werden kann, um eine ArtInformationsquelleAutor Rizwan
Zum Beispiel , wenn Sie möchten, zu öffnen, den ersten Blick ich.e-Quiz-Trivia-was ist an der position 0 , es öffnet sich der Wunsch der Klasse, die Sie eingeben. sorry mein Englisch ist schwach. hoffe du hast das verstanden.
InformationsquelleAutor Rahul Bhavani
Müssen Sie mit Absicht, Sie kann auch passieren das entsprechende listview-Element-Daten auf Ihre neue Tätigkeit.
Ausgabe:
Finden Sie das ganze tutorial hier
InformationsquelleAutor Richard Kamere
Hinzufügen setOnItemclickListener() für deine Listview.
InformationsquelleAutor Guna
Verwenden:
Intent appInfo = new Intent(CurrentActivity.this, ApkInfoActivity.class);
startActivity(appInfo);
InformationsquelleAutor GeertG
Versuchen Sie, ändern der Sichtbarkeit von
protected
zupublic
für die Methode header.Bearbeiten
Nun, ich sehe es, Ihre Methode header ist eigentlich falsch. Es sollte die folgende sein:
Müssen die Variablen werden in der gleichen Reihenfolge, wie Sie in der Schnittstelle, die Sie implementieren.
Check meinen edit im post
InformationsquelleAutor Andrew Schuster
zum Beispiel, wenn u wollen, öffnen Sie eine Aktivität, die basierend auf dem text u klicken Sie in der Listenansicht,dh wenn "abcd" ist die option klickte auf das listview-und u wollen, öffnen Sie die Aktivität mit dem gleichen Namen "abcd",dann führen Sie diese ..
InformationsquelleAutor Jagdeesh
Geben Sie eine Erklärung zu meiner Antwort. Ich nehme an, Sie haben deine listview in Ordnung genau wie in deinen geposteten code. Ich werde nur überprüfen in diesem Teil des Codes:
super.onListItemClick(l, v, position, id);
Ich glaube nicht, das ist notwendig.
In dem Fall des Beispiels, das ich gegeben:
Ich bin nur die Einstellung eine lister meiner listview die ich genannt habe, lv,
mein adapter(das ist der Halter von meinem listview-Elemente) legt drei Variablen, eine Ansicht, int position und lange für das argument:,
Ich beziehe mich auf das ausgewählte Element auf listview durch seine position, die wie üblich bei 0 beginnt (wenn Sie instanziieren können es zu starten, auf eine andere Zahl, wie Sie möchten, e,g, int position=1, startet das Element count auf 1).
Von hier aus können Sie dann keine Kontrolle struct start der Aktivität als pro Element geklickt haben, in meinem Fall, habe ich eine for-Schleife, da ich annahm mein listview hat drei Elemente, die nur für größere listview-Elemente, können Sie mithilfe einer for-Schleife.
Bitte beachten Sie, wie ich meine Tätigkeit, indem Sie zuerst durch das referenzieren auf die aktuelle Tätigkeit wie folgt (SwahiliService.diese), von denen können sicher sein, ersetzen durch (dieses Schlüsselwort nur) und dann folgt die Aktivität, mit der ich starten will.
Ich hoffe, das wird jetzt aufwendiger.
InformationsquelleAutor Martin Karari
//Fügt der ArrayList und ArrayAdapter:
//Add ArrayList Klassen:
//Klicken Sie auf einen Listeneintrag, um offene Klasse aus ArrayList Klassen:
SIEHE BILD VON KLASSENNAMEN HIER
Sorry, da ist es
InformationsquelleAutor Armin Hadzic
InformationsquelleAutor Martin Karari