一尘不染

如何从Android的xml字符串资源中检索2D数组?

java

假设我已经在Android资源中存储了一个二维数组,如下所示。如何在Arraylist这样的Java集合中获取它们?

<resources>
<string-array name="countries_array">   
<item>
    <name>Bahrain</name>
    <code>12345</code>
</item>
<item>
    <name>Bangladesh</name>
    <code>54545</code>
  </item>
<item>
    <name>India</name>
    <code>54455</code>
</item>

</string-array>
</resources>

例如,在一维数组的情况下,我们可以使用

getResources().getStringArray(R.array.countries_array);

当countries_array像

<resources>
<string-array name="countries_array">   
  <item>Bahrain</item>
  <item>Bangladesh</item>
  <item>India</item>
</string-array>
</resources>

阅读 195

收藏
2020-12-03

共1个答案

一尘不染

<string-array>资源文件的元素只能用于一维数组。换句话说,介于<item>和之间的所有内容都</item>被视为单个字符串。

如果你想存储你所描述的方式(有效伪XML)的数据,你需要获得项目作为一个单一的String[]使用getStringArray(...)和解析<name><codes>元素自己。

我个人可能会使用分隔格式,例如…

<item>Bahrain,12345</item>

…然后使用split(...)

或者,将每个定义<item>为JSONObject,例如…

<item>{"name":"Bahrain","code":"12345"}</item>
2020-12-03