假设我已经在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>
<string-array>资源文件的元素只能用于一维数组。换句话说,介于<item>和之间的所有内容都</item>被视为单个字符串。
<string-array>
<item>
</item>
如果你想存储你所描述的方式(有效伪XML)的数据,你需要获得项目作为一个单一的String[]使用getStringArray(...)和解析<name>和<codes>元素自己。
String[]
getStringArray(...)
<name>
<codes>
我个人可能会使用分隔格式,例如…
<item>Bahrain,12345</item>
…然后使用split(...)。
split(...)
或者,将每个定义<item>为JSONObject,例如…
<item>{"name":"Bahrain","code":"12345"}</item>