如果你有数组名,如何在string.xml中获取字符串数组的id

时间:2014-02-17 12:54:04

标签: android xml

我有一个简单的方法来获取string.xml中使用它的字符串名称定义的字符串数组的id? 我有一个字符串数组的字符串名称,我需要一种方法来引用该数组。下面只是一个示例xml。

<string-array name="categories_array">
    <item>Clothes</item>
    <item>Electronics</item>
    <item>Gifts</item>
    <item>Food</item>
</string-array>
<string-array name="clothes">
    <item>Clothes</item>
    <item>Electronics</item>
    <item>Gifts</item>
    <item>Food</item>
    <item>Books</item>
    <item>Music</item>
    <item>Bags</item>
</string-array>
<string-array name="electronics">
    <item>Clothes</item>
    <item>Electronics</item>
    <item>Gifts</item>
    <item>Food</item>
    <item>Books</item>
    <item>Music</item>
    <item>Bags</item>
</string-array>
<string-array name="gifts">
    <item>Clothes</item>
    <item>Electronics</item>
    <item>Gifts</item>
    <item>Food</item>
    <item>Books</item>
    <item>Music</item>
    <item>Bags</item>
</string-array>
<string-array name="food">
    <item>Clothes</item>
    <item>Electronics</item>
    <item>Gifts</item>
    <item>Food</item>
    <item>Books</item>
    <item>Music</item>
    <item>Bags</item>
</string-array>

现在如果我有阵列名称“衣服”,我怎么会得到它的ID?

5 个答案:

答案 0 :(得分:7)

您可以在下面使用:

int resId = getResources().getIdentifier("nameOfStringResource", "array", getPackageName());

例如:

int resId = getResources().getIdentifier("categories_array", "array", getPackageName());

See docs.

答案 1 :(得分:2)

这可以使用反射来完成:

String name = "your_array";
final Field field = R.array.getField(name);
int id = field.getInt(null);
String[] strings = getResources().getStringArray(id);

或使用Resources.getIdentifier()

String name = "your_array";
int id = getResources().getIdentifier(name, "array", getPackageName());
String[] strings = getResources().getStringArray(id);

答案 2 :(得分:0)

尝试R.array.yourarray 希望它有所帮助。

答案 3 :(得分:0)

您可以使用

getResources().getString(R.string.your_string)

获取String

getResources().getStringArray(R.array.your_string)

获取String array

答案 4 :(得分:0)

String [] some_array = getResources()。getStringArray(R.array.categories_array);

相关问题