Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
January 15, 2022 02:00 am GMT

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To