75 votes

Comment mettre une variable à l'intérieur de string-resources ?

Est-il possible de mettre des variables à l'intérieur des ressources de type chaîne ? Et si oui, comment les utiliser ?

Ce dont j'ai besoin est le suivant :

<string name="next_x_results">Next %X results</string>

et mettre un int à la place du %X.

116voto

Yasin Bahtiyar Points 734
<string name="meatShootingMessage">You shot %1$d pounds of meat!</string>  

int numPoundsMeat = 123;
String strMeatFormat = getResources().getString(R.string.meatShootingMessage, numPoundsMeat);

Exemple tiré de aquí

37 votes

Pour information, Resources.getString(int resId, Object... formatArgs) est une autre méthode similaire à String.format(), qui prend l'id de la ressource et les arguments Object. Elle vous permet de sauter la dernière étape.

10 votes

36voto

Roel Points 2201

Il suffit de le passer dans la fonction getString() comme objet formatArgs.

int nextResultsSize = getNextResultsSize();
String strNextResultsSize = 
     getResources().getString(R.string.next_x_results, nextResultsSize);

XML :

<string name="next_x_results">Next %1$d results</string>

15voto

XYZ Points 2550
<string name="message">You shot %1$d pounds of meat! Put Second Variable String here %2$s and third variable integer here %3$d</string>
int intVariable1 = 123;
String stringVariable2 = "your String";
int intVariable3 = 456;
String strMeatFormat = getResources().getString(R.string.message, intVariable1, stringVariable2 , intVaribale3);

2 votes

Comment avez-vous assigné une valeur de chaîne de caractères à int en stringVariable2 ?

1 votes

@salman En utilisant %2$s , j'ai assigné la valeur de la chaîne de caractères à la chaîne de caractères en deuxième position, et non pas à l'int.

-3voto

krupa parekh Points 364

Oui, vous pouvez utiliser. après avoir ajouté le tag au fichier string.xml et ensuite pour retranscrire le même dans votre fichier .java vous pouvez suivre ceci.

AndriodApp

String str = getResources().getString(R.string.name) ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X