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

Android Discussion :

Problème enum et tableau (accès aux variables)


Sujet :

Android

  1. #21
    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
    Bah en fait c'est pour éviter des déclarations comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    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>();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    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);
    Pour ensuite passer de ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    mListViewAll.setAdapter(mAdapterAll);
    mListViewQuot.setAdapter(mAdapterQuot);
    mListViewHebd.setAdapter(mAdapterHebd);
    mListViewMens.setAdapter(mAdapterMens);
    mListViewTrim.setAdapter(mAdapterTrim);
    mListViewAnn.setAdapter(mAdapterAnn);
    A genre ça (dans une boucle):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mListView[i].setAdapter(mAdapter[i])
    C'est mes profs qui me disent que je dois faire comme ça pour virer la redondance dans mes déclarations

  2. #22
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oui...
    Pourquoi pas...

    Un truc genre:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    class MyActivity extends ...
    {
         static enum ListId
         {  ALL, QUOT, HEBD, MENS, TRIM, ANN };
     
         private List<String>[]               mListData;
         private ArrayAdapter<String>[]  mListAdapters;
         private ListView[]                    mListViews;
     
         @SuppressWarnings("unchecked")
         public void onCreate(...)
         {
             int numEntries = ListId.values().length;
             this.mListData = new ArrayList[numEntries ];
             this.mListAdapters = new ArrayAdapter[numEntries ];
             this.mListViews = new ListView[numEntries];
             for (ListId id : ListId.values()) {
                 int idx = id.ordinal();
                 this.mListData[idx] = new ArrayList<String>();
                 fillListData(id,this.mListData[idx]);
                 this.mListAdapters[idx] = new ArrayAdapter<String>(.....this.mListData[idx]);
                 this.mListViews[idx] = (ListView) findViewById(getViewId(id));
                 this.mListViews[idx].setAdapter(this.mListAdapters[idx]);
                 this.mListViews[idx].setTag(id);
                 this.mListViews[idx].setOnItemClickListener(this);              
             }
     
        }
     
     
        public int  getListViewId(ListId id)
        {
              ????
        }
     
        public void fillListData(ListId id, List<String> dest)
        {
              ????
        }
     
        public void onItemClick(AdapterView parent, View v, int position)
        {
            ListId id = (ListId) parent.getTag();
            String itemClicked = this.listData[id.ordinal()].get(position);
        }
     
    }
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #23
    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
    Le problème c'est qu'à chaque fois que je veux faire un tableau de type List<String> et ou arrayList j'ai une erreur du type "Cannot create a generic array of List<String>" :s

  4. #24
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Oui parceque ce doit être ArrayList ou tout autre implémentation de List

    La création doit être un truc genre:

    @SuppressWarnings("unchecked")
    this.myArray = new ArrayList[listsize];

    Je vais modifier le pseudo-code pour en faire un code compilable
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #25
    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
    Vais check ça.
    pour le moment je n'ai plus d'erreur, à part que je vais devoir trouver le moyen de rendre mes asynctask un peu plus polyvalente :s

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 19
    Dernier message: 09/08/2006, 13h03
  2. Acces aux variables d'une DLL
    Par abignon dans le forum MFC
    Réponses: 1
    Dernier message: 08/09/2005, 14h29
  3. [C#] Accès aux variables Session
    Par kalan dans le forum ASP.NET
    Réponses: 9
    Dernier message: 31/08/2005, 16h40
  4. [FLASH MX2004] [AS2] Accès aux variables d'une classe
    Par stailer dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 17/07/2005, 12h58
  5. [Language]Accès aux variables
    Par Adaemon dans le forum Langage
    Réponses: 12
    Dernier message: 27/04/2005, 14h17

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