有没有一种方法可以将存储在XML中的值数组读入类型化的ArrayList中?

时间:2019-04-24 12:31:06

标签: java android xml xml-parsing

我刚刚开始全面使用Android Studio和Java。我想读取一个文件(可以是任何文件格式),该文件存储成对的String + long对。然后,我想将该数组键入一个类(假设这只是根据我从XML读取的内容来循环构造元素的一种简单方法)-QUestion涉及读取数据。

我摆弄了很多res / values /中的文件,但是还没有找到将两个值分配给一个项目的方法。如果我可以调用xml [0] .string和xml [0] .long,那么对于我打算做的事情已经足够了。

2 个答案:

答案 0 :(得分:1)

您可以在资源中设置两个数组,以在最后创建一个数组

res / values / arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array name="integer_array">
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
    </integer-array>
    <string-array name="string_array">
        <item>string 1</item>
        <item>string 2</item>
        <item>string 3</item>
        <item>string 4</item>
    </string-array>
</resources>

您班上的

Resources res = getResources();
int[] ints = res.getIntArray(R.array.integer_array);
String[] strings = res.getStringArray(R.array.string_array);

//add them to your object array
ArrayList<YourObject> list = new ArrayList();

int i = 0;
while(i < ints.length){
    //make sure the two lists are the same size
    list.add(new YourObject(ints[i], strings[i]));
    i++;
}

我不确定是否可以使用此功能获得long个项目,但整数应该可以完成

答案 1 :(得分:0)

尝试一下,例如:将此内容放入rec / values / arrays.xml中的arrays.xml

<string-array name="array_gender">
        <item>Select Gender</item>
        <item>Male</item>
        <item>Female</item>
    </string-array>

用法

List<String> myArrayList = Arrays.asList(getResources().getStringArray(R.array.array_gender));