gpt4 book ai didi

java - Android xml 中的嵌套数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:18:33 25 4
gpt4 key购买 nike

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

关于java - Android xml 中的嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25751707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com