Android variables in strings.xml Android variables in strings.xml xml xml

Android variables in strings.xml


Assuming that you want to pass a string value as a parameter in the another_string then your string is not well formatted to receive that argument and if you try to use it your output will be {$some_string} trolololo.

If you need to format your strings using String.format(String, Object...), then you can do so by putting your format arguments in the string resource.

<resources><string name="some_string">string1</string><string name="another_string">%1$s trolololo</string></resources>

Now your able to format the string with arguments from your application like this:

String arg = "It works!";String testString = String.format(getResources().getString(R.string.another_string), arg);Log.i("ARG", "another_string = " + testString);

Doing so the output string will be another_string = It works! trolololo.

Take a look at the Android Developers official documentation, here.


This will solve your problem:

<resources>    <string name="some_string">string1</string>    <string name="another_string">@string/some_string trolololo</string></resources>

Now the output of the getApplicationContext().getString(R.strings.another_string) will be string1 trolololo.


Or, you can directly use getResources().getString(R.string.activity_title, arg).

For example

<resources>   <string name="postfix_title">%s Gallery</string></resources>

and then simply,

String arg = "Colors";String title = getResources().getString(R.string.postfix_title, arg);

This will result in title containing value Colors Gallery.