Aller au contenu

[Résolu] Stockage des id dans une listeview


Recommended Posts

Bonjour !

je récupère des infos depuis une base du téléphone et je les affiches dans une ListView (par le biais d'un adapter).

En ce moment, je suis entrain de faire les méthodes de gestion, à savoir : ajouter un champs, supprimer un champs, le modifier ...

Pour ce qui est de la suppression, j'ai besoin de l'id afin de construire ma requête et supprimer la bonne ligne (WHERE id = *).

Seulement je ne sais pas comment, ni où, stocker l'id quand je construit la listview...

J'ai pensé à l'attribut ContentDescription du LinearLayout des éléments de ma ListView, mais il y a sûrement mieux ?

Peut être remplir un TextView en visibility false ?

Merci de me dire selon vous la meilleur façon de faire ;)

Modifié par TeChn4K
Lien vers le commentaire
Partager sur d’autres sites

Non non non et non ! Il faut séparer la vue des données ! C'est un principe élémentaire de la programmation. Pourquoi t'acharne tu à stocker les id dans la vue? C'est pas plus simple d'avoir tout simple une tableau de String pour les données et une ListView?

Si tu clique sur l'item à la position i ça veut dire que l'id associé est à l'index i dans ton tableau d'ID.

Inclure un élément View dans ta hiérarchy de vue est tout simplement la pire des choses que tu puisse faire ! Même si le framework n'est pas bête et vire carrément les onMeasure, onLayout et onDraw des vues en visibility View.GONe ça reste horrible car cela signifie qu'un objet TextView est alloué pour STRICTEMENT rien !

Modifié par Cyril Mottier
Lien vers le commentaire
Partager sur d’autres sites

Ok Cyril !

Bon je viens de revoir un peu tout ça pour l'optimisation !

Je crois en fait ne même pas avoir besoin d'un tableau d'int pour stocker mes id en parallèle de ma ListView. (je dis je crois car peut être y aura-t-il une meilleure méthode :D). Je m'explique :

Mon ListView adapter contient des objets qui ont en attribut un int (le fameux id), 2 strings, et un drawable.

Dans la méthode getView, je voulais stocker par n'importe quel moyen les IDs de ces objets dans le but de les récupérer plus tard sur un onItemClick. Mais c'était sans connaitre ce bout de code :

public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {

       MonObjet o = (MonObjet) getListView().getItemAtPosition(position);
   }

Il me permet de récupérer l'objet contenu par mon élément cliqué, et donc d'appeler ses méthodes dont "getID()".

J'attends vos retours !

Aussi si je n'emploie pas les bons termes, n'hésitez pas à me le dire, je ne demande qu'a progresser.

EDIT:

@Fluckysan : Je n'avais pas compris ta solution car à l'époque je ne savais pas comment récupérer mon objet depuis mon événement.

Modifié par TeChn4K
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...