Wie höre ich mir ein Klickereignis in einer ListView an?
Das habe ich jetzt
ListView list = (ListView)findViewById(R.id.ListView01);
...
list.setAdapter(adapter);
Wenn ich folgendes mache
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parentView, View childView,
int position, long id)
{
setDetail(position);
}
public void onNothingSelected(AdapterView parentView) {
}
});
Das scheint beim Klicken nichts zu bewirken.
Und all diese Codes leben in einer Klasse, die die Aktivität erweitert.
android
listview
click
onitemclicklistener
teepusink
quelle
quelle
Angenommen, das ListView-Objekt ist lv, gehen Sie wie folgt vor:
quelle
lv
ist innen nicht zugänglichonItemClick
. Was ist ein guter Weg, um das zu umgehen?final ListView lv = (ListView) findViewById(R.id.your_list_view);
Object o = ((ListView)arg0).getItemAtPosition(position);
Sie müssen die aufgeblasene Ansicht "Klickbar" und "Klickereignisse abhören können" in Ihrer Methode der Adapterklasse getView () festlegen.
und deklarieren Sie den Klick-Listener in Ihrer ListActivity wie folgt:
Dies gilt nur, wenn Sie den Adapter durch Erweitern von BaseAdapter anpassen.
Weitere Informationen finden Sie in ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java
quelle
Die beiden Antworten vor mir sind richtig - Sie können verwenden
OnItemClickListener
.Es ist gut zu wissen, dass der Unterschied zwischen
OnItemClickListener
undOnItemSelectedListener
, obwohl er subtil klingt, tatsächlich erheblich ist, da die Auswahl und der Fokus von Elementen mit dem Berührungsmodus Ihres Geräts zusammenhängenAdapterView
.Standardmäßig gibt es im Touch-Modus keine Auswahl und keinen Fokus. Sie können einen Blick hier für weitere Informationen zu diesem Thema.
quelle
Diese Lösung ist wirklich minimalistisch und bringt Ihren Code nicht durcheinander.
Weisen Sie in Ihrer list_item.xml (NICHT listView!) Das Attribut android: onClick folgendermaßen zu :
und rufen Sie dann in Ihrer Aktivität diese Methode auf:
quelle
view
einige Metadaten haben kann, könnte es der Weg sein, um die Position zu bekommen.Du musst
setOnItemClickListener
jemanden benutzen , sagte.Der Code sollte folgendermaßen aussehen:
quelle
Zunächst muss die Klasse den Klick-Listener implementieren:
Stellen Sie dann einen Listener auf die ListView ein
Und schließlich erstellen Sie die Clic-Methode:
Sie können einen Blick und Downloadcode nehmen hier
quelle
Verwenden Sie in Ihrer Aktivität die API setOnItemClickListener (). Es folgt das Beispiel.
quelle
Fügen Sie in Kotlin Ihrer Listenansicht einen Listener hinzu, der so einfach wie Java ist
quelle