ArrayAdapter.clear kotlin

Я пытаюсь изучить kotlin, и я хочу преобразовать один из моих проектов андроида из 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 } } } 

Я получаю ошибку. Операция не поддерживается для коллекции только для чтения в kotlin.collections.EmptyList.clear () в строке с помощью cityAdapter.clear () Я не знаю, как ее решить.

Для всего проекта, пожалуйста, проверьте

Проблемная историческая версия WeatherFragment

Текущая версия

На этой строке cityAdapter = CitySearchAdapter(context, emptyList())

emptyList предоставит вам неизменный список (только для чтения), поэтому вам нужно использовать

 cityAdapter = CitySearchAdapter(context, arrayListOf()) 

или

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

Мутируемые коллекции в Котлине

Как инициализировать MutableList Kotlin для удаления 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()