我必须将一个存储在arrays.xml中的数组作为ArrayList
String arrayNames[]=MyActivity.this.getResources().getStringArray(R.array.names;
ArrayList<String> namesList=(ArrayList<String>) Arrays.asList(arrayNames));
这个原因
java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
因为由于List的不同实现而从List转换为ArrayList
似乎是否定的。
我需要传递ArrayList<String>
,因此我无法更改ArrayList<String> namesList
中的List<String> namesList
。
想知道是否有更好的方法来转换String
ArrayList<String>
,而无需手动编写迭代所有数组条目并将其全部放入ArrayList<String>
答案 0 :(得分:1)
你无法以这种方式投射,宣布一个新的ArrayList
:
ArrayList<String> namesList= new ArrayList<String>(Arrays.asList(arrayNames)));
答案 1 :(得分:0)
你可以这样写:
ArrayList<String> namesList=new ArrayList<String>(Arrays.asList(arrayNames));
答案 2 :(得分:0)
您可以尝试使用TypedArray
Resources resources = mContext.getResources();
TypedArray namesList = resources.obtainTypedArray(R.array.names);