Aller au contenu

Spinner : associer un numéro aux sélections


voidcome

Recommended Posts

Bonjour,

Je développe depuis un petit temps sur Android et je suis aujourd'hui confronté à un petit problème.

En résumé, il y a plusieurs listes déroulante (Spinner) sur ma vue et jusqu'à maintenant, elles étaient remplis avec un tableau de String.

Aujourd'hui, j'ai avancé dans la conception de mon application et je souhaiterais faire quelques changements.

En effet, les informations qui doivent figurer dans ces listes sont issus de mes bases SQLite.

Le problème, c'est qu'il faudrait que je puisse afficher les noms dans la liste, tout en obtenant l'id correspondant à la base SQLite.

Par exemple, imaginons que ma table soit :

departement_id | departement_ nom

------------------------------------------

1 | truc

42 | machin

103 | chose

Il faudrait que la liste déroulante affiche les noms uniquement :

> truc

> machin

> chose

Et que lorsque l'utilisateur sélectionne un champ, je puisse obtenir le numéro correspond pour pouvoir traiter les infos avec d'autres tables SQLite.

(Il peut y avoir des doublons dans les noms, alors que l'id est unique, c'est donc nécessaire).

Je peux facilement obtenir un tableau de String avec tous les noms de ma table SQLite, mais je ne vois pas comment associer chaque nom à un id.

Pouvez-vous m'aider ?

Actuellement, le bout de code pour associer un tableau de String à la liste est :

final DepartmentBDD departmentLite = new DepartmentBDD(this);
departmentLite.open();

// Récupération du tableau
String[] tabDep = departmentLite.getAllString();

// Référence sur la liste déroulante
final Spinner listeDep = (Spinner)findViewById(R.id.listeDepartement);

// Affectation du tableau à la liste déroulante
ArrayAdapter adDep = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, tabDep);
listeDep.setAdapter(adDep);

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Il faut que tu puisses fournir l'id de tes données au spinner, afin que celui-ci puisse te le retourner quand l'utilisateur aura sélectionné une entrée

Pour ce faire, il faut que tu récupères le cursor de la requête BDD, cursor que tu peux ensuite utiliser pour construire un SimpleCursorAdapter, que tu fournis ensuite au Spinner

Ensuite, l'id de l'item sélectionné te sera fourni dans le OnItemClickedListener, ou en appelant la méthode getSelectedItemId du Spinner

Par contre, petite contrainte, pour que le spinner puisse retrouver l'id, le nom de la colonne de cet id doit être "_id"

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...