我在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>
答案 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。