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 :

Ressources strings dynamiques


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 118
    Par défaut Ressources strings dynamiques
    Bonjour,

    J'ai une ressource string dans mon fichier strings.xml que voici :

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    	<string name="num_e1_n1">%1$s</string>
    </resources>

    Puis dans mon fichier layout, le TextView qui prend la ressource :

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <TextView
        android:id="@+id/num_joueur_e1_n1"
        style="@style/num_joueur"
        android:layout_alignTop="@id/maillot_rouge1"
        android:layout_centerHorizontal="true"
        android:text="@string/num_e1_n1" />

    Et enfin ma méthode OnCreate() :

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_saisie_stats);
     
          // ...
     
        Resources res = getResources();
        String numero = String.format(res.getString(R.string.num_e1_n1), 98);
        num_rouge1 = (TextView) findViewById(R.id.num_joueur_e1_n1);
        num_rouge1.setText(numero);
     
        // ...
    }

    Malheureusement, au lancement de mon application mon TextView affiche '%1$s' et non 98 comme je le souhaite.
    J'ai l'impression que ma ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num_rouge1.setText(numero);
    ne s'execute pas, et je ne comprends pas pourquoi.

    Merci à celui ou ceux qui pourront me dire ce qui ne vas pas.

    PS: 98 est juste un exemple, ça sera une variable par la suite.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Par défaut
    %1$s c'est pour insérer une chaine de caractère, or 98 est un nombre donc il faudrait mettre %1$d

    http://developer.android.com/referen...Formatter.html

  3. #3
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 118
    Par défaut
    Tu as raison, mais ca ne vient pas de ça, j'avais déja essayé.

    Non, j'ai fait des tests et c'est bien mon setText qui ne fonctionne pas, mais je vois pas pourquoi.
    Personne a une idée?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Par défaut
    essai de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String numero = String.format(res.getString(R.string.num_e1_n1), 98);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String numero = res.getString(R.string.num_e1_n1, 98);
    et l'erreur vient peut-être pas de %1$s mais si tu le laisse c'est sur que ça marchera pas.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Par défaut
    D'ailleurs je vois pas trop pourquoi tu stocke ça dans un fichier xml
    il te suffit de déclarer ta chaine en java et de la passer directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String numero ="89";
    num_rouge1.setText(numero);

  6. #6
    Membre confirmé

    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 118
    Par défaut
    Oui oublions les strings dynamiques.

    Mais si je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    num_rouge1 = (TextView) findViewById(R.id.num_joueur_e1_n1);
    String numero = "89";
    num_rouge1.setText(numero);
    A l'affichage, le Textview a pour valeur celle qu'on lui donne dans le layout, ou aucune valeur (si on lui donne rien).
    En gros j'ai l'impression que mon setText n'a aucun effet, j'ai cherché partout, je ne trouve aucune solution.

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

Discussions similaires

  1. Pourquoi ressource string retourne id
    Par JackDannyL dans le forum Android
    Réponses: 5
    Dernier message: 17/01/2014, 01h44
  2. dll copie string dynamique
    Par ouiouioui dans le forum Débuter
    Réponses: 4
    Dernier message: 10/10/2011, 12h16
  3. [Interface] Projet multi-langue sous C++ Builder, message interne en ressource (String Tables)
    Par otacon ghost dans le forum C++Builder
    Réponses: 4
    Dernier message: 03/08/2011, 16h46
  4. ada string dynamique
    Par lovoo dans le forum Ada
    Réponses: 1
    Dernier message: 31/05/2010, 09h15
  5. [VB6] creation de variable de type string dynamiquement
    Par da40 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 12/06/2003, 16h59

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