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

vjd*_*ama 1 xml android

我有一个简单的方法来获取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>
Run Code Online (Sandbox Code Playgroud)

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

Dev*_*rim 7

您可以在下面使用:

int resId = getResources().getIdentifier("nameOfStringResource", "array", getPackageName());
Run Code Online (Sandbox Code Playgroud)

例如:

int resId = getResources().getIdentifier("categories_array", "array", getPackageName());
Run Code Online (Sandbox Code Playgroud)

查看文档.

  • 除非您将"id"更改为"array",否则这将无效. (3认同)