Yuze Tang
Yuze Tang

Reputation: 15

Android getString issue

So I have many strings in strings.xml, they are recorded in a format of:

<string name="list_1">xxxxxxxxxxx</string>
<string name="list_2">xxxxxxxxxxx</string>
<string name="list_3">xxxxxxxxxxx</string>
......

Now I want to load them one by one without having to type all the string IDs. I want to load them in a fashion like:

for (int i = 1; i <= num; i++) {

    // Just showing what I mean.
    String xxx = getString(R.string.("list_" + i)); 

}

Is there a method to do so?

Upvotes: 1

Views: 68

Answers (2)

jmarkstar
jmarkstar

Reputation: 1335

Try this:

int resourceID = getResources().getIdentifier("list_" + i, "string", getPackageName());

String xxx = getString(resourceID); 

Upvotes: 1

Tomek Gozdek
Tomek Gozdek

Reputation: 226

It would be worth to use resource arrays. For example

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>

and you can access, iterate as follows:

Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);

Upvotes: 1

Related Questions