Aller au contenu

[Résolu] Ajout variable dans un Item d'Array-List


Gabin

Recommended Posts

Bonsoir,

Je souhaiterais pouvoir assigner une valeur à chaque item de mon Array List.

Je m'explique.

Disons que j'ai :

strings.xml

<string-array name="frandroidSpinner">
     <item value="2058" >Frandroid 1</item>
     <item value="3697" >Frandroid 2</item>
     <item value="1023" >Frandroid 3</item>
</string-array>

Je souhaiterais pouvoir récupérer value lorsque l'item est sélectionné.

Je ne trouve pas comment faire... une piste ?

Merci à vous =)

Modifié par G&Dev
Lien vers le commentaire
Partager sur d’autres sites

J'ai tout compte fais contourner mon problème en assignant ma variable lors de mon setOnItemSelectedListener pour chaque spinner.

Méthode très fastidieuse (environ 400 variables à comptabiliser et à synchroniser : ordre dans mes switch's et ordre de me items correspondant dans mes Array-List's.

Si jamais quelqu'un qui passerait par là voit une autre méthode plus simple et plus propre pour le code, je serais prêt à l'écouter ! Quitte à mettre à jour mon application =)

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Un petit Up car je souhaiterais passer à la solution que j'avais imaginé à la base !

C'est à dire faire un tableau à plusieurs variables dans un xml, mais comment ? et comment récupérer l'id (2ème variable) d'une variable dans ma class ?

Modifié par G&Dev
Lien vers le commentaire
Partager sur d’autres sites

A ma conaissance , tu ne peut pas faire ça directement dans le string-array . Etant donné qu'un string array n'est qu'un array de string ( logique) .

Une solution (a verifier) serait de creer un string-array et un integer-array en parallèle , qui contiendrait les info que tu veux , le souci c'est qu'il faudra faire attention à la synchro entre les deux.

Lien vers le commentaire
Partager sur d’autres sites

Ok ça m'embête un peu de faire ça comme ça... justement pour gérer la synchro entre les 2 :emo_im_undecided:

Espérons que quelqu'un aura une idée de comment faire ? Même si ce n'est pas un string-array mais quelque chose qui pourrait ressembler à ça...

Merci quand même pour ta réponde :)

Lien vers le commentaire
Partager sur d’autres sites

Mais en fait c'est justement ce que je ne veux pas faire, l'intégrer dans mon code ^^

Je veux mettre toutes mes données dans un fichier de manière à me faciliter le portage de l'application pour d'autres université qui ont d'autres données.

Lien vers le commentaire
Partager sur d’autres sites

c'est pas parceque c'est intégré au code que c'est difficile à porter , suffit de faire une class qui ne gère que ça , suffit donc par la suite de transvaser la class (le .java) dans un autre projet (et changer le packagename)

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

string-array et integer-array sont des tableaux de type simple (de chaines, d'entiers) qu'il n'est pas possible de synchroniser 2 à 2.

Par contre, il existe un autre format, pas spécifique à Android, qui permet de décrire, en XML, un ensemble de couples clef/valeur : les Properties, qui, à mon avis, peut correspondre à ton besoin. En stockant ce fichier dans res/raw, tu peux ensuite obtenir un InputStream sur cette ressource (Context.getResources().openRawResource()), pour la charger dans un objet Properties (Properties.loadFromXML). Ensuite, cet objet Properties te permettra de récupérer les clefs (getKeys(), les valeurs (getValues()) ou l'ensemble des couples clef/valeurs (entrySet()) pour pouvoir initialiser un Adapter que tu donneras à manger à ton Spinner

Ensuite, tu n'aurais plus qu'à modifier le contenu de ton fichier XML pour adapter le contenu de tes Spinner, sans impact sur le code

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

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