ArrayAdapter.clear kotlin

时间:2017-09-07 14:33:11

标签: java android kotlin android-arrayadapter

我正在尝试学习kotlin,我想将我的一个android项目从java转换为kotlin。但我有一个问题

override fun onResponse(call: Call<List<CitySearch>>?, response: Response<List<CitySearch>>?) {
    if(response != null && response.isSuccessful) {
        val list = response.body()
        cityAdapter.clear()
        if(list != null && !list.isEmpty()){
            cityAdapter.addAll(list)
            listView.visibility = View.VISIBLE
            recyclerView.visibility = View.GONE
            cityName.visibility = View.GONE
        }
    }
}

我收到错误对于cityAdapter.clear()行上kotlin.collections.EmptyList.clear()的只读集合不支持Operation 我不知道如何解决它。

对于所有项目,请检查

Problematic historic version of WeatherFragment

Current Version

2 个答案:

答案 0 :(得分:9)

在这一行  cityAdapter = CitySearchAdapter(context, emptyList())

at the code将为您提供一个不可变列表(只读),因此您需要使用

cityAdapter = CitySearchAdapter(context, arrayListOf())

cityAdapter = CitySearchAdapter(context, mutableListOf<YourType>())

emptyList

Mutable Collections in Kotlin

答案 1 :(得分:2)

您可以全局初始化arrylist,如下所示

{{1}}

将数据添加到数组列表中定义适配器并设置为适配器

{{1}}