ArrayAdapter.clear 科特林

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
        }
    }
}

我收到错误 Operation is not supported for read-only collection at kotlin.collections.EmptyList.clear() on the line with cityAdapter.clear() 不知道怎么解决。

所有项目请勾选

Problematic historic version of WeatherFragment

Current Version

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

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

cityAdapter = CitySearchAdapter(context, arrayListOf())

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

Mutable Collections in Kotlin

你可以像下面一样全局初始化arraylist

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