我已将ArrayList声明为
var otherSeriesList = ArrayList<String>()
尝试通过以下方式从资源获取数据,
otherSeriesList = ArrayList<String>(Arrays.asList(resources.getStringArray(R.array.get_other_series)))
我应该如何从资源字符串数组创建ArrayList?
答案 0 :(得分:2)
只需使用ArrayList(resources.getStringArray( ... ).toMutableList())
。
如果您不需要在代码中使用ArrayList
,那么您可以将属性类型更改为MutableList<String>
并致电resources.getStringArray( ... ).toMutableList()
或者您可以在阵列上使用点差运算符,并通过调用ArrayList
arrayListOf(*context.resources.getStringArray())
答案 1 :(得分:2)
简单就是这样 -
otherSeriesList = ArrayList<String>(Arrays.asList(*resources.getStringArray(R.array.get_other_series)))
*会将数组作为vararg传递
答案 2 :(得分:1)
您可以将其声明为MutableList()。在此之前也将StringArray
强制转换为String
。
var otherSeriesList: MutableList<String> = Arrays.asList(resources.getStringArray(R.array.get_other_series).toString())
或者你可以这样做,
var otherSeriesList: MutableList<String> = resources.getStringArray(R.array.get_other_series).toMutableList()
答案 3 :(得分:0)
如果您有阵列,只需在其上调用toList()
。
val arr = arrayOf(1, 2)
val list = arr.toList()
或者,也可以使用toMutableList()
扩展名。
注意您可以像这样在Kotlin中声明列表:
val list = listOf<String>(1, 2)
要确保获得ArrayList
,请使用arrayListOf()
。
答案 4 :(得分:0)
您可以创建 extension 功能
private fun Array<String>.getAsArrayList(): ArrayList<String> {
val list = ArrayList<String>()
this.forEach { it->list.add(it) }
return list
}
并像这样称呼它
val list = resources.getStringArray(R.array.array).getAsArrayList()