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

Collection et Stream Java Discussion :

array adapter widget


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de floopi51
    Inscrit en
    Octobre 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 136
    Par défaut array adapter widget
    bonjour,

    je développe une application Android avec un spinner (menu déroulant) à partir d'une "resource" android (ie un fichier xml) en utilisant un array adapter.
    Avant l'affichage, je souhaite insérer une CharSequence en début de liste. J'ai une exception : ERROR/AndroidRuntime(437): Caused by: java.lang.UnsupportedOperationException"

    Et la cause de cette exception semble venir du code de ArrayAdapter :
    03-05 11:21:54.362: ERROR/AndroidRuntime(361): at android.widget.ArrayAdapter.insert(ArrayAdapter.java:196)

    En fouillant un peu sur le web, j'ai trouvé le code et la ligne qui provoque l'erreur. L'erreur dans le code donne : cannot execute pushFront() on a native array.


    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
     
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.devises_array, android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
     
    CharSequence dev0 = new String("TOTO");
    adapter.insert(dev0, 0);
     
    spinner.setAdapter(adapter);
    Quelqu'un naurait-il une idée de ce qui ne va pas ??
    merci pour vos suggestions....

  2. #2
    Membre confirmé Avatar de floopi51
    Inscrit en
    Octobre 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 136
    Par défaut
    J'ai eu une réponse sur un autre forum :
    "Ton problème vient tout simplement de l'utilisation de "createFromResource" qui utilise la méthode gesTextArray pour récupérer les textes à afficher. C'est très pratique puisque tu réduit drastiquement le nombre de lignes de code mais cela empêche malheureusement la modification de ce tableau puisque ça n'est pas un tableau "modifiable" (tableau natif)."

    Du coup j'ai un peu contourné le problème en insérant mon élément dans un ArrayList au lieu du ArrayAdapter mais ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String[] listdev = getApplicationContext().getResources().getStringArray(R.array.my_array);
            ArrayList<String> list = new ArrayList<String>();
            list.add("Toto");
            for(i=0; i<listdev.length; i++) {
                list.add(listdev[i]);
            }
            ArrayAdapter<String> m_adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);
            m_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     
            Spinner spinner = (Spinner) findViewById(R.id.spinner2);
     
            spinner.setAdapter(m_adapter);
            spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());


    J'espère que ça pourra servir à d'autres !

  3. #3
    Membre confirmé

    Homme Profil pro
    Étudiant Réseaux et Télécoms
    Inscrit en
    Octobre 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant Réseaux et Télécoms
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 121
    Par défaut
    Citation Envoyé par floopi51 Voir le message
    J'ai eu une réponse sur un autre forum :
    "Ton problème vient tout simplement de l'utilisation de "createFromResource" qui utilise la méthode gesTextArray pour récupérer les textes à afficher. C'est très pratique puisque tu réduit drastiquement le nombre de lignes de code mais cela empêche malheureusement la modification de ce tableau puisque ça n'est pas un tableau "modifiable" (tableau natif)."

    Du coup j'ai un peu contourné le problème en insérant mon élément dans un ArrayList au lieu du ArrayAdapter mais ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String[] listdev = getApplicationContext().getResources().getStringArray(R.array.my_array);
            ArrayList<String> list = new ArrayList<String>();
            list.add("Toto");
            for(i=0; i<listdev.length; i++) {
                list.add(listdev[i]);
            }
            ArrayAdapter<String> m_adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);
            m_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     
            Spinner spinner = (Spinner) findViewById(R.id.spinner2);
     
            spinner.setAdapter(m_adapter);
            spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());


    J'espère que ça pourra servir à d'autres !

    Merci bien J'ai enfin trouvé la solution grâce à toi

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

Discussions similaires

  1. Adaptation du label à la taille du widget
    Par Romz34 dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 21/11/2012, 10h57
  2. adapter une listview par widget ratingbar ?
    Par amirmejrii dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 10/02/2012, 21h58
  3. Réponses: 2
    Dernier message: 23/02/2003, 00h49
  4. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47
  5. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46

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