2011-07-11 2 views
0

Après avoir cherché beaucoup de questions similaires postées sur stackoverflow et d'autres forums pendant quelques jours, j'ai décidé de poster ceci puisque je ne pouvais pas trouver la réponse que j'étais la recherche (j'ai peut-être manqué l'évidence). Disons que j'ai un arraylist de hashmaps qui contient à son tour 2 items, 1 - un identifiant unique qui a été récupéré d'une table de base de données et 2 - le nom d'un pays.Comment obtenir l'ID unique d'un article dans listview créé en utilisant simpleadapter dans onListItemClick

J'ai défini ma listview dans une mise en page xml, et j'ai également une mise en page séparée avec le nom du pays en tant que vue de texte. J'ai une classe d'activité qui étend l'activité de liste pour laquelle j'ai défini la vue de contenu comme la disposition qui contient la disposition de listview.

J'ai créé un simpleadapter en utilisant cette hashmap et avec le nom du champ countryname (je veux que seul le nom du pays soit affiché dans la liste) - la vue se présente bien, pas de problème.

Maintenant, lorsque vous cliquez sur un élément de la vue, la méthode onListItemClick est appelée comme prévu et je suis capable de récupérer le nom de pays en fonction de la position. Mais ce que je veux réellement obtenir, c'est l'ID du pays qui était initialement stocké dans l'arraylist (hashmap) mais qui n'était pas inclus dans la liste des éléments à afficher dans la listview. Y a-t-il un moyen d'obtenir cette identification? Lorsque j'utilise un adaptateur de curseur, le même onlistitemclick est capable de me donner l'uniqueID des données dans le paramètre ID, mais lorsque j'utilise un simpleadapter, l'identifiant transmis au rappel semble être le même que la position.

Tout laisse à ce sujet est très apprécié, il est possible que je l'ai oublié.

Répondre

0

Pourquoi ne pas simplement étendre le simpleadapter pour avoir une variable d'instance qui peut être définie sur l'ID?

+0

Merci. Je me demandais s'il y a un moyen d'y parvenir en utilisant l'adaptateur par défaut, si la vue liste/l'adaptateur stocke les valeurs qui ne sont pas affichées mais qui font partie de la structure de données utilisée dans la création de l'adaptateur. même dans la méthode onlistiemclick - n'a pas pu trouver quoi que ce soit qui suggère cela dans la documentation, mais je veux juste le confirmer avec les experts. –

+0

bien si vous regardez sur les documents officiels pour [simpleadapter] (http://developer.android.com/reference/android/widget/SimpleAdapter.html), vous verrez à quels champs vous pouvez accéder. Le but d'étendre une classe est de pouvoir ajouter vos propres variables d'instance, comme dans votre cas. –

+0

Merci Kevin, je suis 2 modèles maintenant, si j'ai besoin d'un adaptateur personnalisé puis je remplacer la méthode getItemID pour retourner l'ID requis, lorsque je n'utilise pas un adaptateur personnalisé, j'ai fait la liste de tableau en tant que variable membre du list activity class et dans le onlistitemclck j'utilise la variable position et récupère l'ID de la liste de tableau d'origine. –

Questions connexes