在android中的xml资源文件中创建“ArrayList”

时间:2012-12-06 19:48:23

标签: java android xml

我知道如何在xml中创建一个像这样的简单数组

<resources>
    <string-array name="countries_array">
        <item>Afghanistan</item>
        <item>Albania</item>
        <item>Algeria</item>
        <item>American Samoa</item>
        <item>Andorra</item>
        <item>Angola</item>
        <item>Anguilla</item>
        <item>Antarctica</item>
    </string-array>
</resources>

然后我在代码中将其初始化为

ArrayAdapter<String> adapter = 
        new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries_array);
textView.setAdapter(adapter);

但我想存储的项目多于字符串,所以我需要一种存储arraylist而不是简单数组的方法。

如下所示

<resources>
<Share>
    <name>Apple</name>
    <currentRate>5.69</currentRate>
    <changeToday>-0.11</changeToday>
    <changeTodayPercent>-0.02</changeTodayPercent>
    <timeUpdated>2012,12,06,18,00,00</timeUpdated>
<Share>
<Share>
    <name>Microsoft</name>
    <currentRate>5.88</currentRate>
    <changeToday>0.19</changeToday>
    <changeTodayPercent>+0.09</changeTodayPercent>
    <timeUpdated>2012,12,06,18,00,00</timeUpdated>
<share>
...
</resources>

我已经有一个名为Share.java的类,其中包含以下需要通过setMethods设置的变量

公共类ShareHolding {

private String name;
private double currentRate;
private double changeToday;
private double changeTodayPercent;
private GregorianCalendar timeUpdated;
}

并将它们添加到arraylist

ArrayList<Share> allShares = new ArrayList<Share>();

allShares.getShare(0).setName("I want to access my xml file here and add the first shares name here");

1 个答案:

答案 0 :(得分:1)

据我所知,您将无法使用资源文件使数据类型不匹配。该资源仅支持one-way datatypes.例如字符串数组,整数数组等

最好的解决方案是将Share xml分配到它自己的文件中,然后解析到你的共享对象中。 The android developer has some example of the built in xml parser