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 :

Indexer avec une chaine de caracteres


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Points : 55
    Points
    55
    Par défaut Indexer avec une chaine de caracteres
    Bonjour,

    je suis débutant en prog et je cherche à remplir une liste en fonction du choix fait dans un Spinner.
    Mon Spinner a ces item: 172,714,716,etc...

    Je n'arrive pas en fonction du choix fait (ex 712) dans le Spinner récupérer la liste d'item correspondant dans les ressources.

    J'ai tenté comme ceci mais ce n'est pas la bonne méthode:
    Merci pour votre aide!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Resources res = getResources();								
    int [] data = res.getIntArray(R.array.("Fonction"+MonSpinner.getSelectedItem().toString()));


    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
     
    <resources>
        <integer-array name="Fonction712">
            <item>5</item>
            <item>6</item>
            <item>3</item>
            <item>8</item>
        </integer-array>
        <integer-array name="Fonction714">
            <item>9</item>
            <item>4</item>
            <item>3</item>
            <item>2</item>
        </integer-array>
    </resources>

  2. #2
    Membre habitué Avatar de dev_2007
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Points : 138
    Points
    138
    Par défaut
    pourras-tu nous fournir tous le code pour mieux comprendre afin de faciliter la résolution ?
    Cordialement,
    HEL
    __________________
    Tout d'abord le faire fonctionner , Ensuite qu'il soit rapide. Enfin le rendre agréable à utiliser.

  3. #3
    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
    Non c'est pas la bonne méthode... mais tu n'es pas loin

    Dans la FAQ tu trouveras comment utiliser la fonction (lente mais qui marche toujours) :
    http://developer.android.com/referen...a.lang.String)

    Donc ce que tu veux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Resources res = getResources();
    int arrayId = res.getIdentifier("Fonction"+MonSpinner.getSelectedItem().toString(),"array",getPackageName());
    // attention au crash si il n'y pas de selectedItem !!!
    int [] data = res.getIntArray(arrayId);
    Il y a une autre solution (plus rapide à l'execution, utilisant la reflection de Java):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Resources res = getResources();
    int arrayId = R.array.class.getDeclaredField("Fonction"+MonSpinner.getSelectedItem().toString()).getInt(null);
    int[] data = res.getIntArray(arrayId);
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Points : 55
    Points
    55
    Par défaut
    Merci pour votre aide ça fonctionne mais comment afficher les éléments du tableau "data" dans des editBox!!
    Je ne dois pas être loin ..

    voila comment j'ai fais:

    lors de la sélection dans le Spinner:

    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
     
    MonSpinner.setOnItemSelectedListener(new OnItemSelectedListener()
    {
     
    public void onItemSelected(AdapterView<?> arg0, View indice, int selection, long arg3)
    {
     
    if (MonSpinner.getCount()>0)
    								{
    Resources res = getResources();								
    int arrayId = R.array.class.getDeclaredField("Fonction"+MonSpinner.getSelectedItem().toString()).getInt(null);
    int [] data = res.getIntArray(arrayId);
    text1.setText(data[0]);// c'est çà que sa foire 
    text2.setText(data[1]);
    text3.setText(data[2]);
    text4.setText(data[3]);                
    }
     
    }

    J'ai modifié comme ceci pour que ça fonctionne mais es ce la bonne solution?

    dans les ressources j'ai mis directement en chaine de caractere string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <string-array name="Fonction712">
            <item>5</item>
            <item>6</item>
            <item>3</item>
            <item>8</item>
        </string-array>
    Puis dans l'action du spinner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] data = res.getStringArray(arrayId);

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

Discussions similaires

  1. cmt inserer une chaine de caractere avec apostrophe
    Par dipajero dans le forum Oracle
    Réponses: 1
    Dernier message: 13/04/2006, 22h27
  2. Probleme avec une chaine de caractere
    Par Jim_Nastiq dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2006, 09h56
  3. Réponses: 6
    Dernier message: 05/04/2006, 11h12
  4. Réponses: 2
    Dernier message: 05/12/2005, 13h05
  5. [Regex]Match d'une regexp avec une chaîne avec caractères spéciaux
    Par gdawirs dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 12h24

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