将array.xml中的多个字符串数组合并到一个List中

时间:2015-09-12 18:59:14

标签: java android arrays xml

我在array.xml中定义了一些字符串数组,并希望将它们组合到一个List中。我试过这样的:

List<String> name_list;
name_list = Arrays.asList(getResources().getStringArray(R.array.name1));
name_list.addAll(Arrays.asList(getResources().getStringArray(R.array.name2)));

但是错误Caused by: java.lang.UnsupportedOperationException

array.xml

<string-array name="name1">
    <item>Peter</item>
    <item>Phooenix</item>
    <item>Ebele</item>
    <item>Alice</item>
</string-array>

<string-array name="name2">
    <item>Olivia</item>
    <item>Tai</item>
</string-array>

2 个答案:

答案 0 :(得分:1)

当您查看Arrays的Javadoc时,您可以看到Arrays.asList(...)返回的列表只是一个将数组用作列表的桥,因此是固定大小。

要解决您的问题,您可以使用以下内容:

List<String> name_list = new ArrayList<>();
name_list.addAll(Arrays.asList(getResources().getStringArray(R.array.name1)));
name_list.addAll(Arrays.asList(getResources().getStringArray(R.array.name2)));

答案 1 :(得分:0)

阅读Arrays.asList上的javadoc:

返回由指定数组支持的固定大小的列表。

因此,您不能在代码的第二行调用addAll。相反,您需要创建自己的List,并在您自己的列表中为这两个数组使用addAll。