2011-09-21 8 views
1

cet exemple: http://saigeethamn.blogspot.com/2010/04/custom-listview-android-developer.html. Il existe 3 identifiants de vue de texte à l'adresse custom_row_view.xml. Il y a 3 données de ligne dans un listitem de position lors de l'utilisation de onListItemClick. comment extraire ces données? comment utiliser l'identifiant? Quoi qu'il en soit pour obtenir des données d'affichage de la ligne dans la vue de la liste lorsque la liste élément est cliqué [onListItemClick protected void (ListView l, Vue v, position int, long id]?Comment obtenir les données de vue de ligne dans la vue de liste

Répondre

5

Le paramètre View v lui-même est la vue de la ligne. Vous pouvez obtenir les données jointes en appelant v.getTag(). devrait le mettre plus tôt dans getView de l'adaptateur en utilisant v.setTag(Object)

+0

cet exemple: http://saigeethamn.blogspot.com/2010/04/custom-listview-android-developer.html. Il y a 3 identifiants de textview à custom_row_view.xml. Il y a 3 données de ligne dans un listitem de position lors de l'utilisation de onListItemClick. comment extraire ces données? comment utiliser l'identifiant? – conanlive

+1

Vous pouvez utiliser 'findviewbyId' et obtenir les balises attachées aux vues. – Ronnie

0

dépend du type de données. par exemple id ne contient la _id à partir d'une ligne de table de base de données qui a été créé avec l'un des CursorAdapters. Habituellement, il s'agit du PK de la ligne de la table de base de données

0
listView.getAdapter().getItemAt(position) 

vous obtient l'objet lié à la vue V

0

Je voudrais vous recommander de ne pas obtenir des données de la vue, au lieu utiliser ArrayList vous avez utilisé pour définir les données à l'adaptateur de ListView.

Dans l'exemple que vous avez indiqué, vous utilisez une ArrayList de HashMap. Donc, pour un exemple ..

listView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // arrayList is the variable which you have used as a list in your SimpleAdapter 
     hashMap = arrayList.get((int)id); // you need to typecast 'id' from long to int 
     value = hashMap.get(KEY); 
    } 
}); 
Questions connexes