2015-08-20 1 views
4

Comment puis-je obtenir tous les articles dans un Spinner?Android - Comment obtenir tous les éléments dans un fileur?

J'avais du mal à essayer de chercher un moyen d'obtenir tous les éléments d'un Spinner mais je n'ai pas réussi à trouver une solution élégante. La seule solution semble être de stocker la liste des éléments avant de l'ajouter à la Spinner

Y a-t-il une autre meilleure façon de le faire?

+0

Écrire un adaptateur personnalisé. Dans l'adaptateur, ajoutez la méthode qui renvoie la liste des éléments ... –

+0

Je n'ai aucun contrôle sur l'adaptateur. Je reçois juste le Spinner dans ma méthode et je connais juste le genre de Classe des items – Antonio

+0

'Liste items = ((CastMyAdapterType) monSpinner.getAdapter()). GetList();' –

Répondre

8

Une façon simple et élégante de le faire est, si vous connaissez les objets de type que la fileuse stocke:

public class User { 

    private Integer id; 

    private String name; 

    /** Getters and Setters **/ 

    @Override 
    public String toString() { 
     return name; 
    } 
} 

Compte tenu de la dernière classe et un Spinner qui contient une liste de User vous pouvez faire suivant:

public List<User> retrieveAllItems(Spinner theSpinner) { 
    Adapter adapter = theSpinner.getAdapter(); 
    int n = adapter.getCount(); 
    List<User> users = new ArrayList<User>(n); 
    for (int i = 0; i < n; i++) { 
     User user = (User) adapter.getItem(i); 
     users.add(user); 
    } 
    return users; 
} 

Ceci m'a aidé! J'espère que ça le ferait pour toi!