Aller au contenu

Affichage dans un menu déroulant ![Résolu]


flabb

Recommended Posts

Bonjour,

Voici ma question !

J'ai plusieurs ArrayList qui contiennent une liste d'objet (dans mon cas un objet Carte !)

et je regroupe cela dans une "SUPER" ArrayList qui englobe le tout

// contient les differents Dico
ArrayList> listeDico = new ArrayList>();
// chaque Dico
ArrayList Dico1 = new ArrayList();
ArrayList Dico2 = new ArrayList();
ArrayList Dico3 = new ArrayList();

listeDico.add(Dico1);
listeDico.add(Dico2);
listeDico.add(Dico3);

Et maintenant je crée mon ArrayAdapter

ArrayAdapter> adapter = new ArrayAdapter>(this,android.R.layout.simple_spinner_item,listeDico);

le problème c'est que par defaut , aucun String n'est associé a une ArrayList !

mon menu déroulant fontionne je peux bien choisir, mais n'afficher que des "[]" "[]" pour chaque élément de la liste alors que j'aimerai Dico1, Dico2, Dico3 ( pas facile de choisir :lol: )

J'ai contourné le problème en créant une 2ème ArrayListe qui ne contient que les noms , mais je trouve cela fort peut élégant !

que faire ?

il y a pas moyen de définir un string a une ArraList ? ( comme une Hashtable ?)

réécrire un méthode qui remplace le constructeur de ArrayAdapter personnalisé ? si oui comment ?

Merci !!

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

J'ai trouver la solution à mon problème !!

Le code source d'Android dit :

* However the TextView is referenced, it will be filled with the toString() of each object in

* the array. You can add lists or arrays of custom objects. Override the toString() method

* of your objects to determine what text will be displayed for the item in the list.

Donc comme mesArrayList Dico1 Dico2 et Dico3 ne sont pas une instance de CharSequence, il appelle Monobjet.toString(), qui n'existe pas dans ArrayAdapter et qui donne donc [] !

donc si je créée une méthode .toString() pour un objet ArrayAdapter c'est ok !!

Je met le code ici si ça intéresse du monde !!

package ch.fabbet.android.VocabuloCarte;

import java.util.ArrayList;

class ArrayListText extends ArrayList{

// Pour être certain de la concordance des versions !
private static final long serialVersionUID = 1L;
private String text;

   public ArrayListText(String string){
       this.text = string;
   }

   @Override
    public String toString(){
       String string= this.text;
        return string;
    }
}

Modifié par flabb
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...