我正在尝试学习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 我不知道如何解决它。
对于所有项目,请检查
答案 0 :(得分:9)
在这一行
cityAdapter = CitySearchAdapter(context, emptyList())
at the code将为您提供一个不可变列表(只读),因此您需要使用
cityAdapter = CitySearchAdapter(context, arrayListOf())
或
cityAdapter = CitySearchAdapter(context, mutableListOf<YourType>())
答案 1 :(得分:2)
您可以全局初始化arrylist,如下所示
{{1}}
将数据添加到数组列表中定义适配器并设置为适配器
{{1}}