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 :

Mettre une variable dans un getStringArray()


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut Mettre une variable dans un getStringArray()
    Salut à tous,
    Je bloque depuis plusieurs heure sur un problème.
    Quand je récupère les items de mon spinner ( ils sont dans mon fichier xml avec comme nom "spinner_matiere"), je fais ceci :
    List_matiere = getResources().getStringArray(R.array.spinner_matiere);

    Seulement maintenant, je voudrais faire la même chose mais en remplaçant "spinner_matiere" par une variable de type String.

    ex : List_matiere = getResources().getStringArray(R.array.variable);

    Comment faire ?
    merci

  2. #2
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Je ne comprends pas tout...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List_matiere = getResources().getStringArray(R.array.spinner_matiere);
    Ca ne peut pas compiler... il manque un nom de variable après le type "List_matiere"... Et getStringArray() renvoit une array de String, difficelement "transformable" nativement en List_matiere ...

    Et je ne vois pas la différence avec le deuxième call (à part l'identifiant des ressources qui change):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getResources().getStringArray(R.array.variable);
    Si le but est de stocker une variable qui contient l'identifiant des ressources il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int variable = ...;
    getResources().getStringArray(variable);

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut
    Merci pour vos réponses.
    Je me suis mal exprimé.
    Citation Envoyé par nicroman Voir le message
    Je ne comprends pas tout...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List_matiere = getResources().getStringArray(R.array.spinner_matiere);
    Ca ne peut pas compiler... il manque un nom de variable après le type "List_matiere"... Et getStringArray() renvoit une array de String, difficelement "transformable" nativement en List_matiere ...
    En faite le type de ma variable est déclaré en debut de programme et je ne l'ai pas indiqué, il s'agit de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String List_matiere[] = getResources().getStringArray(R.array.spinner_matiere);
    où "List_matiere" est le nom de ma variable.



    Citation Envoyé par nicroman Voir le message
    Et je ne vois pas la différence avec le deuxième call (à part l'identifiant des ressources qui change):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getResources().getStringArray(R.array.variable);
    Dans ce bout de code, "variable" est la valeur que je voudrais modifier par un String qui porterai le nom de "variable".



    Citation Envoyé par nicroman Voir le message
    Si le but est de stocker une variable qui contient l'identifiant des ressources il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int variable = ...;
    getResources().getStringArray(variable);
    Et pour ceci, le problème est que je voudrais que ma varible contienne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String variable = "R.array.spinner_"+nom_matiere+"_s3";
    Seulement getStringArray() veut un Int.

  4. #4
    Expert confirmé

    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
    Billets dans le blog
    3
    Par défaut
    Ok... voir la réponse de Feanorin alors qui est parfaite...

    Quant à "List_matiere". En JAVA, seuls les types commencent par une majuscule. Les noms de variable / fonction commencent toujours par une minuscule.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Par défaut
    Impeccable ça marche !! Merci à tous.

  6. #6
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Il faut plutôt récupérer l'identifier de la variable :

    Un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int pictureId =getResources().getIdentifier( message .getString( "fromPicture" ), "drawable" , "com.android2ee.tuto.gui" );
    tu aurais pour ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int variable =getResources().getIdentifier( "variable", "array" , "tonpackage );
    getResources().getStringArray(variable );

    Ce tutoriel explique ceci :
    http://mathias-seguy.developpez.com/...ue/#L3-2-7-1-1

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

Discussions similaires

  1. Mettre une variable dans un range
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/11/2007, 14h05
  2. [Debutant] Mettre une variable dans un value
    Par kimar dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/06/2007, 14h33
  3. mettre une variable dans Target.Address
    Par lilemy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/06/2007, 15h47
  4. Réponses: 2
    Dernier message: 10/04/2007, 23h43
  5. [Excel]Mettre une variable dans une fonction
    Par soad029 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/04/2006, 12h00

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