Android xml中的嵌套数组

乔希

以前我有一个简单的字符串数组,其中包含一个看起来像的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部分组成了)

我不知道是否有可能在字符串数组中执行此操作,如果不是,那么替换选项是什么。如果是这样,我不确定如何引用字符串数组以使子项值脱离父项。如果您知道有一种更好的方法,那么我也不会局限于这种解决方案。任何帮助将非常感激。

Mstrthealias

这就是我要做的事情,以实现这样的目标:

<?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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章