ArrayAdapter.clear kotlin

我正在努力学习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()我不知道如何解决它。

对于所有的项目,请检查

WeatherFragment有问题的历史版本

当前版本

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

emptyList会给你一个不可变的列表(只读),所以你需要使用

 cityAdapter = CitySearchAdapter(context, arrayListOf()) 

要么

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

Kotlin中的可变集合

我如何初始化Kotlin的MutableList来清空MutableList?

您可以像下面一样全局初始化arrylist

 var mArrayBindStages: MutableList<String> = ArrayList() 

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

 var adapterSearch = User_Adapter_Search_Box(activity, dataList) val mLayoutManager = GridLayoutManager(activity, 1) rc_RecyclerView!!.layoutManager = mLayoutManager as RecyclerView.LayoutManager? rc_RecyclerView!!.adapter = adapterSearch adapterSearch!!.notifyDataSetChanged()