81

Is it possible to put variables inside string-resources? And if yes - how do i use them.

What i need is the following:

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

and put an int in place of the %X.

4 Answers 4

126
<string name="meatShootingMessage">You shot %1$d pounds of meat!</string>  


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

Example taken from here

Sign up to request clarification or add additional context in comments.

2 Comments

FYI, Resources.getString(int resId, Object... formatArgs) is another method similar to String.format(), which takes the resource id and the Object arguments. Lets you skip that last step.
36

Just pass it throught getString() function as formatArgs Object.

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

XML:

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

Comments

17
<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 Comments

How did you assign a string value to int in stringVariable2?
@salman By using %2$s , I have assigned string value to string on 2nd place, not int
-3

yes,you can use. after adding tag to string.xml file and then to retrrive the the same in your .java file you can follow this.

AndriodApp

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.