IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Récupérer tous les items d'une ListView ou d'un Adapter


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 86
    Points
    86
    Par défaut Récupérer tous les items d'une ListView ou d'un Adapter
    Bonjour à tous,

    Dans mon application Android, j'aimerais pouvoir récupérer à un moment donné tous les items qui composent une listView mais je ne trouve pas comment faire.

    Pour peupler ma listView, j'utilise un Adapter personnalisé qui hérite de la classe ArrayAdapter<?>.

    Dans mon code, j'ai donc naturellement pensé à faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final MonAdapteur adapter = (MonAdapteur) maListView.getAdapter();
    Et ensuite appeler une méthode de MonAdapteur qui me retournerait la liste.

    Mais impossible de convertir l’adapter renvoyé par la méthode getAdapter() en MonAdapter.

    Comment faire alors pour récupérer l'arrayList qui peuple ma listView ?

    Merci d'avance pour votre aide !

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Je vais te filer la solution que j'ai dans mon code

    En gros je déclare comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /**===============================================
            Création des list de donnée pour chaque listView
            ===============================================**/ 
    	public List<String> mDataAll = new ArrayList<String>();
    	public List<String> mDataQuot = new ArrayList<String>();
    	public List<String> mDataHebd = new ArrayList<String>();
    	public List<String> mDataMens = new ArrayList<String>();
    	public List<String> mDataTrim = new ArrayList<String>();
    	public List<String> mDataAnn = new ArrayList<String>();
     
    	/**===============================================
                            Déclaration des différents adaptateur
            ===============================================**/ 
    	public ArrayAdapter<String> mAdapterAll, mAdapterQuot, mAdapterHebd, mAdapterMens, mAdapterTrim, mAdapterAnn;
     
    	/**===============================================
                    Déclaration des listView
            ===============================================**/ 
    	public ListView mListViewAll, mListViewQuot, mListViewHebd, mListViewMens, mListViewTrim, mListViewAnn;
    donc mes mData s'occupent de récupérer les valeurs (pour moi ça vient d'une bdd via un webService et des tâches asynchrônes).

    Puis ensuite il y a la déclaration des adaptateur et des listeView

    Ensuite je m'occupe de créer mes adaptateur en leur fournissant les valeurs nécessaires:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mAdapterAll = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataAll);
    		mAdapterQuot = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataQuot);
    		mAdapterHebd= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataHebd);
    		mAdapterMens= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataMens);
    		mAdapterTrim= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataTrim);
    		mAdapterAnn= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataAnn);
    Bon logiquement tu dois aussi t'occuper de lier tes listView à leur id dans ton xml (moi pour le moment j'essaye de faire ça d'une manière plus dynamique)

    Ensuite pour lier ta vue à ton adaptateur tu dois faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mListViewAll.setAdapter(mAdapterAll);
    		mListViewQuot.setAdapter(mAdapterQuot);
    		mListViewHebd.setAdapter(mAdapterHebd);
    		mListViewMens.setAdapter(mAdapterMens);
    		mListViewTrim.setAdapter(mAdapterTrim);
    		mListViewAnn.setAdapter(mAdapterAnn);
    Voilà, n'oublie pas en début de code de charger tes listes en données ;-)

    Ha oui et en fait tu veux tous les récupérer ou juste le titre d'un élément de la liste?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    Je me suis probablement mal exprimé. J'arrive sans soucis à peupler une listView avec un Adapteur personnalisé, ce n'est pas le soucis.

    Ma question est comment récupérer les données qui peuplent une listView lorsque que je n'ai accès qu'au listView et à l'Adapter. Je souhaite "retrouver" l'arrayList qui peuple la listView à partir de cette dernière ou de son Adapter.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 137
    Points : 67
    Points
    67
    Par défaut
    Mais je ne comprend pas comment t'arrive à ne plus avoir accès à ton ArrayList mais par contre bien à ton adaptateur ^^
    En gros pour moi (si j'ai bien compris) tu as créé une classe MyAdaptater dans laquelle tu as utilisé un constructeur pour récupérer les données et donc au lieu de faire new ArrayAdapter tu as fait new MyArrayAdapter?

    Si c'est le cas tu crées une variable de type ArrayList =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MyAdapter adapter = new MyAdapter(arg)
    ArrayList mListe = adapter.getAdapter()

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    En fait je me mélangeais les pinceaux dans mes ayncTask... J'ai bien accès à mon arrayList original.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BDC récupérer tous les items d'une application depuis le code
    Par tigrou2405 dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 20/01/2011, 15h37
  2. [RegEx] Récupérer tous les liens d'une page
    Par micatmidog dans le forum Langage
    Réponses: 13
    Dernier message: 03/11/2006, 01h37
  3. Récupérer tous les handles d'une application choisie
    Par dacid dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 21/04/2006, 16h24
  4. [RegEx] récupérer tous les liens d'une page
    Par italiasky dans le forum Langage
    Réponses: 15
    Dernier message: 08/04/2006, 18h55
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo