我有一个简单的方法来获取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?
答案 0 :(得分:7)
您可以在下面使用:
int resId = getResources().getIdentifier("nameOfStringResource", "array", getPackageName());
例如:
int resId = getResources().getIdentifier("categories_array", "array", getPackageName());
答案 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);