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 :

Charger un tableau de type string à partir des ressources


Sujet :

Android

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 19
    Points : 18
    Points
    18
    Par défaut Charger un tableau de type string à partir des ressources
    Bonsoir,

    Je débute dans le langage java, et la programmation sous android studio.
    Je souhaite faire la chose suivante : charger dans un tableau de type string 60 chaînes de caractères stockées dans les ressources (string.xml).
    J'ai donné des identifiants de type texte1, texte2, ....texte60, pensant pouvoir utiliser une boucle for pour générer tous les R.id.texte1, R.id.texte2, etc...
    que je souhaite utiliser ensuite dans des textView par objet_textView.setText(R.id.texten)
    Mais celà ne marche pas. setText attend un identifiant, et non un string

    Quelqu'un peut-il m'expliquer ce qu'il faut faire pour y arriver ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 475
    Points : 586
    Points
    586
    Par défaut
    Pour faire ce que tu souhaites, le mieux est de passer par un tableau que tu crées dans arrays.xml.

    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!--?xml version="1.0" encoding="utf-8"?-->
    <resources>
        <array name="monTableau">
            <item>First</item>
            <item>Second</item>
            <item>Third</item>
            <item>Fourth</item>
            <item>Fifth</item>
        </array>
    </resources>

    Ainsi, dans ton activité, tu l'appelles par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String[] textArray = getResources().getStringArray(R.array.monTableau);
    ce qui te donnes donc un tableau de String.


    Sinon, ton problème est que "R.id.texten" est lu comme un String alors qu'il veut un int. Il suffit de le parser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objet_textView.setText(Integer.parseInt(R.id.texten));

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Merci.

    J'ai d'abord essayé : objet_textView.setText(Integer.parseInt(texte[0]) (aprés avoir valorisé texte[0] avec une chaîne valide. Résultat : l'appli plante en exécution dans le terminal virtuel android.

    Je n'ai pas encore cherché pourquoi, car l'autre méthode me paraît plus élégante. J'ai réussi à la faire fonctionner à partir du moment ou j'ai compris que le fichier doit s'appeler arrays.xml, et pas autrement.

    Merci pour ton aide

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/09/2015, 13h25
  2. Réponses: 5
    Dernier message: 08/06/2015, 12h49
  3. Réponses: 0
    Dernier message: 27/04/2015, 12h23
  4. convertir un tableau de type string en type double
    Par saraenim dans le forum Windows Forms
    Réponses: 8
    Dernier message: 12/05/2008, 15h45
  5. Réponses: 4
    Dernier message: 14/10/2003, 08h58

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