从资源字符串数组创建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()。 在此之前也将该StringArrayString

 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()