2017-09-07 8 views
3

私はkotlinを勉強しようとしています。私はJavaからkotlinに私のAndroidプロジェクトの1つを変換したいと思います。しかし、私は知りません )私は、エラー操作は)(kotlin.collections.EmptyList.clearで読み取り専用のコレクションのためにサポートcityAdapter.clear(と行にされていない得る問題ArrayAdapter.clear 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 = CitySearchAdapter(context, emptyList())

emptyListこのラインで

Problematic historic version of WeatherFragment

Current Version

+0

あなたはどちらのkotlinバージョンをお使いですか? –

答えて

7

をチェックしてください意志はあなたの不変のリストを提供します(読み取り専用)ので、あなたは

を使用する必要があります
cityAdapter = CitySearchAdapter(context, arrayListOf()) 

または

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

Mutable Collections in Kotlin

How do I initialize Kotlin's MutableList to empty MutableList?

+0

ありがとう。今朝私の心に響き、ArrayListを使用しました() –

+0

ようこそ、私は助けてくれると嬉しく思います –

2

あなたは

var mArrayBindStages: MutableList<String> = ArrayList() 

アダプタを定義する配列リストにデータを追加し、

をアダプタに設定し、次のように世界的に同じarrylistを初期化することができます
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()