2010-10-25 4 views
5

Je développe une application Android.Identifiez l'article cliqué sur Méthode ListActivity onListItemClick

J'ai plusieurs objets chargés sur un ListActivity. Je souhaite connaitre l'élément cliqué sur l'événement onListItemClick.

Je vois la méthode onListItemClick a un paramètre appelé id. Comment puis-je configurer cet identifiant?

Mes objets sont identifiés par un ID, comment puis-je ajouter cet ID à listItem?

Merci.

Répondre

7

Quelle est la source de vos données de liste? Si vous utilisez un curseur - alors l'id passé en onListItemClick(ListView l, View v, int position, long id) sera automatiquement l'identifiant de la ligne du curseur.

+0

Je n'utilise pas de curseur. J'utilise un tableau String. – VansFannel

+0

Ensuite, en supposant que votre tableau contienne l'ID dans l'un de ses index, accédez au tableau en utilisant la variable de position. c'est-à-dire myArray [position] [0] (si votre ID est @ index 0 du tableau) – Dave

+0

Voyez-vous ce que je veux dire? Les données source doivent avoir votre ID d'objet présent pour commencer, qu'il s'agisse d'une chaîne [] ou ArrayList, ou d'un curseur ou de toute autre source. – Dave

2

Utilisez ce qui suit;

listView.getItemAtPosition(position); 

Où listView est le nom de votre vue de liste.

+0

Non, ça ne marche pas pour moi. Par exemple, je mets un objet avec id = 1 sur la position 12. Je ne veux pas connaître la position, je veux connaître l'identifiant de l'objet sur une position spécifique. – VansFannel

8

Si SectionObj est votre objet auquel vous souhaitez accéder ultérieurement, définissez-le dans l'adaptateur lorsque vous définissez la source.

ArrayList<SectionObj> li 

ArrayAdapter<SectionObj> adapter=new ArrayAdapter<SectionObj>(getApplicationContext(),android.R.layout.simple_list_item_1, li); 
    setListAdapter(adapter); 

puis dans ur méthode d'écoute ..

protected void onListItemClick(ListView l, View v, int position, long id) { 

SectionObj o=(SectionObj)getListView().getItemAtPosition(position); 

}

Questions connexes