使用键和getStringArray(Android)从资源xml文件中检索字符串值



我没有运行一个包含许多单独字符串值的非常大的开关用例,而是尝试从数组列表中调用一个特定的字符串。我有xml 中的数组列表

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="type_items">
<item name="kitchen_0">spoon</item>
<item name="kitchen_1">fork</item>
<item name="bathroom_0">toothbrush</item>
<item name="bathroom_1">hair brush</item>
</string-array>
</resources>

在代码中,用户将做出2个选择。一个用于房间,另一个用于物品。然后程序将产生作为字符串输出的项目结果。

public String result(int room, int item)
{
String roomID = getResources().getStringArray(R.array.roomlist)[room] + "_" +
String.valueOf(item);
return //needs to return "toothbrush" if roomID is bathroom_0
}

现在,我试图从数组列表中返回与该组合相关的值,但在四处搜索后,我找不到答案。也许答案是我只是做错了。感谢您的帮助。

您是否使用Android API?似乎getStringArray并不意味着要使用name属性。它只是返回一个包含项文本值的数组。

因此,在这里,如果你想检索t类型的第i个项目,你可以这样重新设计你的资源文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="kitchen">
<item>spoon</item>
<item>fork</item>
</string-array>
<string-array name="bathroom">
<item>toothbrush</item>
<item>hair brush</item>
</string-array>
</resources>

并以这种方式编辑您的课程:

public final static int KITCHEN_ROOM = R.array.kitchen;
public final static int BATHROOM_ROOM = R.array.bathroom;
public String result(int room, int i)
{
String[] roomItems =  roomID = getResources().getStringArray(room);
// [room] + "_" + String.valueOf(item);
if (rooms_items.length > i) return roomItems[i];
// Here, you can throw an exception or return null;
return null;
}

电话是:

System.out.println(result(BATHROOM_ROOM,1)); // "hair brush"

最新更新