Is it possible to have placeholders in strings.xml for runtime values?
android, android-resources, string, string-formatting
Solution
Formatting and Styling
Yes, see the following from String Resources: Formatting and Styling
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. For example, with the following resource:
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
In this example, the format string has two arguments: `%1$s` is a string and `%2$d` is a decimal number. You can format the string with arguments from your application like this:
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
Basic Usage
Note that `getString` has an overload that uses the string as a format string:
String text = res.getString(R.string.welcome_messages, username, mailCount);
Plurals
If you need to handle plurals, use this:
<plurals name="welcome_messages">
<item quantity="one">Hello, %1$s! You have a new message.</item>
<item quantity="other">Hello, %1$s! You have %2$d new messages.</item>
</plurals>
The first `mailCount` param is used to decide which format to use (single or plural), the other params are your substitutions:
Resources res = getResources();
String text = res.getQuantityString(R.plurals.welcome_messages, mailCount, username, mailCount);
See String Resources: Plurals for more details.
Problem
Is it possible to have placeholders in string values in `string.xml` that can be assigned values at run time? Example: some string PLACEHOLDER1 some more string