Comment écouter un événement de clic sur un ListView?
C'est ce que j'ai maintenant
ListView list = (ListView)findViewById(R.id.ListView01);
...
list.setAdapter(adapter);
Quand je fais ce qui suit
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parentView, View childView,
int position, long id)
{
setDetail(position);
}
public void onNothingSelected(AdapterView parentView) {
}
});
Cela ne semble rien faire en un clic.
Et tout ce code vit dans une classe qui étend Activity.
android
listview
click
onitemclicklistener
teepusink
la source
la source
Supposons que l'objet ListView soit lv, procédez comme suit:
la source
lv
n'est pas accessible à l'intérieuronItemClick
. Quelle est une bonne façon de contourner cela?final ListView lv = (ListView) findViewById(R.id.your_list_view);
Object o = ((ListView)arg0).getItemAtPosition(position);
Vous devez définir la vue gonflée «cliquable» et «capable d'écouter les événements de clic» dans la méthode getView () de la classe d'adaptateur.
et déclarez l'écouteur de clic dans votre ListActivity comme suit,
Cela n'est vrai que lorsque vous personnalisez l'adaptateur en étendant BaseAdapter.
Reportez-vous à ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java pour plus de détails
la source
Les deux réponses avant la mienne sont correctes - vous pouvez utiliser
OnItemClickListener
.Il est bon de noter que la différence entre
OnItemClickListener
etOnItemSelectedListener
, bien que subtile, est en fait significative, car la sélection des éléments et la mise au point sont liées au mode tactile de votreAdapterView
.Par défaut, en mode tactile, il n'y a pas de sélection et de mise au point. Vous pouvez consulter ici pour plus d'informations sur le sujet.
la source
Cette solution est vraiment minimaliste et ne gâche pas votre code.
Dans votre list_item.xml (PAS listView!) Attribuez l'attribut android: onCliquez comme ceci:
puis dans votre activité appelez cette méthode:
la source
view
peut avoir des métadonnées, cela pourrait être le moyen d'obtenir la position.Vous devez utiliser
setOnItemClickListener
quelqu'un a dit.Le code devrait ressembler à ceci:
la source
Tout d'abord, la classe doit implémenter l'écouteur de clic:
Ensuite, définissez un écouteur sur ListView
Et enfin, créez la méthode clic:
vous pouvez jeter un oeil et télécharger le code ici
la source
Utilisez l'api setOnItemClickListener () dans votre activité. Voici l'exemple.
la source
Dans Kotlin, ajoutez un écouteur à votre liste Voir aussi simple que java
la source