从资源字符串数组创建ArrayList
我已经声明了ArrayList,
var otherSeriesList = ArrayList()
并试图从以下资源获取数据,
otherSeriesList = ArrayList(Arrays.asList(resources.getStringArray(R.array.get_other_series)))
但是我得到错误。 请参阅图像 –
我应该如何从资源字符串数组创建ArrayList?
简单的做这个 –
otherSeriesList = ArrayList(Arrays.asList(*resources.getStringArray(R.array.get_other_series)))
*将以可变参数的forms传递数组
只需使用ArrayList(resources.getStringArray( ... ).toMutableList())
。
如果你不需要在代码中使用ArrayList
,那么你可以改变属性的types为MutableList
并调用resources.getStringArray( ... ).toMutableList()
或者你可以在数组上使用spread运算符 ,并通过调用arrayListOf(*context.resources.getStringArray())
创建ArrayList
你可以声明它为MutableList()。 在此之前也将该StringArray
为String
。
var otherSeriesList: MutableList = Arrays.asList(resources.getStringArray(R.array.get_other_series).toString())
或者你可以这样做,
var otherSeriesList: MutableList = resources.getStringArray(R.array.get_other_series).toMutableList()
如果你有一个数组,只需在它上面调用toList()
。
val arr = arrayOf(1, 2) val list = arr.toList()
或者,当然也有一个toMutableList()
扩展可用。
请注意 ,您可以像这样在Kotlin中声明列表:
val list = listOf(1, 2)
为了得到一个ArrayList
,使用arrayListOf()
。
您可以创建一个扩展function
private fun Array.getAsArrayList(): ArrayList { val list = ArrayList () this.forEach { it->list.add(it) } return list }
并像这样称呼它
val list = resources.getStringArray(R.array.array).getAsArrayList()