以前我有一个简单的字符串数组,其中包含一个看起来像的URL
<string-array name="drawerlinkitems">
<item>http://www.google.com</item>
<item>http://www.google2.com</item>
<item>http://www.google3.com</item>
</string-array>
我可以通过调用访问值
return getResources().getStringArray(R.array.drawerlinkitems)[number];
很简单的东西。
我现在的问题是我想做其他一些操作,而不只是获取URL,所以我想构建一个嵌套数组,如下所示:
<string-array name="draweritems">
<item>
<link>http://www.google.com</link>
<title>Google</title>
<icon>soon</icon>
</item>
<item>
<link>http://www.google2.com</link>
<title>Google2</title>
<icon>soon</icon>
</item>
<item>
<link>http://www.google3.com</link>
<title>Google3</title>
<icon>soon</icon>
</item>
</string-array>
然后使用类似
getResources().getStringArray(R.array.draweritems)[number].getString[link];
要么
getResources().getStringArray(R.array.draweritems)[number].getString[1];
(显然,我把getString部分组成了)
我不知道是否有可能在字符串数组中执行此操作,如果不是,那么替换选项是什么。如果是这样,我不确定如何引用字符串数组以使子项值脱离父项。如果您知道有一种更好的方法,那么我也不会局限于这种解决方案。任何帮助将非常感激。
这就是我要做的事情,以实现这样的目标:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="menu_items">
<item>@array/menu_item_dashboard</item>
<item>@array/menu_item_index</item>
</array>
<array name="menu_item_dashboard">
<item>@drawable/transparent</item>
<item>Dashboard</item>
<item>home</item>
</array>
<array name="menu_item_index">
<item>@drawable/transparent</item>
<item>Title</item>
<item>index</item>
</array>
</resources>
并访问:
TypedArray menuResources = getResources().obtainTypedArray(R.array.menu_items);
TypedArray itemDef;
for (int i = 0; i < menuResources.length(); i++) {
int resId = menuResources.getResourceId(i, -1);
if (resId < 0) {
continue;
}
itemDef = getResources().obtainTypedArray(resId);
//itemDef.getDrawable(0)
//itemDef.getString(1)
//itemDef.getString(2)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句