2017-05-04 30 views
1

所以我有很多的strings.xml字符串,它们被记录在一个格式:的Android的getString问题

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

现在我想通过一个加载它们一个,而不必键入所有字符串ID。我想以类似的方式加载它们:

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

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

} 

是否有一种方法可以这样做?

+0

[试试这个(http://stackoverflow.com/a/11595723/1790644)。 –

回答

1

试试这个:

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

String xxx = getString(resourceID); 
+0

非常感谢。非常感谢! –

1

这将是值得使用的资源数组。例如

<?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> 

,您可以访问,迭代如下:

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