An Interest In:
Web News this Week
- April 15, 2024
- April 14, 2024
- April 13, 2024
- April 12, 2024
- April 11, 2024
- April 10, 2024
- April 9, 2024
How to Declare Variables in Android String Resources?
To be referenced by another string resources to avoid duplicated hard-coded strings in different places.
This article was originally published at vtsen.hashnode.dev on Dec 25, 2021.
Suppose you have 2 string resources app_name
and about_text
below, you have 2 duplicated hard-coded strings.
<resources> <string name="app_name">My App Name</string> <string name="about_text">My App Name</string></resources>
Reference Another String Resources
To get rid of duplicated hard-coded strings, what you can do is reference the app_name
from the about_text
.
<resources> <string name="app_name">My App Name</string> <string name="about_text">@string/app_name</string></resources>
But what if you have more complicated about_text
like below?
<resources> <string name="app_name">My App Name</string> <string name="about_text">My App Name is an awesome app!</string></resources>
Use String Format
You can change the about_text
to string format to allow the string to be constructed at run time.
<resources> <string name="app_name">My App Name</string> <string name="about_text">%s is an awesome app!</string></resources>
In code (in your activity class for example), you pass in the app_name
string.
val aboutText = resources.getString( R.string.about_text, resources.getString(R.string.app_name))
Well, there is another better solution to use DOCTYPE! You don't need to pass in the string variable from code.
Use DOCTYPE resources ENTITY
The DOCTYPE resources ENTITY declaration like a variable. You can reference it from another string resources using &<entity_name>;
syntax.
<!DOCTYPE resources [ <!ENTITY app_name "My App Name"> <!ENTITY another_name "Test 1 2 3"> ]><resources> <string name="app_name">&app_name;</string> <string name="about_text">&app_name; is an awesome app!</string></resources>
P/S: If there is another way better than using DOCTYPE, please let me know.
Original Link: https://dev.to/vtsen/how-to-declare-variables-in-android-string-resources-1he8
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To