如何使用Kotlin重新调用活动中的回收站视图的内容

我想要做什么:当用户在edittext中输入某个东西,调用一个API并在回收站中显示响应。

在OnCreate()

usersData= ArrayList() resultRecyclerView.setHasFixedSize(true) resultRecyclerView.layoutManager=LinearLayoutManager( this@MainActivity,LinearLayoutManager.VERTICAL,false) itemsAdapter=adapter(this@MainActivity,usersData) resultRecyclerView.adapter=itemsAdapter 

在OnResume()

 searchText.addTextChangedListener(object : TextWatcher { override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { //.... } override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) { //....... } override fun afterTextChanged(s: Editable) { Log.v("Text is ",s.toString()) val url="https://api.github.com/search/users?q="+s.toString().trim()+"+sort:followers" fetchData(url) } }) 

取数据的方法

 private fun fetchData(url: String) { val tag_string_req = "string_req" val strReq = StringRequest(Request.Method.GET, url, Response.Listener<String> { response -> Log.d(TAG, response.toString()) val builder = GsonBuilder() val gson = builder.create() //val allItems=gson.fromJson(response,AllUsers::class.java) val data=gson.fromJson(response,AllUsers::class.java) usersData=data.items Log.v("No of users",usersData?.size.toString()) resultRecyclerView.removeAllViews() itemsAdapter?.notifyDataSetChanged() }, Response.ErrorListener { error -> VolleyLog.d(TAG, "Error: " + error.message) }) // Adding request to request queue AppController.getInstance().addToRequestQueue(strReq, tag_string_req) } 

但更新的数据没有通过适配器(它仍然有零数据)。 我从API获得预期的响应。 notifyDataSetChanged()不在更新列表。

我以为notifyDataSetChanged也自动更新数据,但没有。

我需要打电话

  itemsAdapter?.updateData(usersData) 

并在适配器中:

 fun updateData(users: ArrayList<Items>?){ this.users=users } 

在适配器中添加此方法

 fun addData(exList: MutableList<Object>) { items.clear() items.addAll(exList) notifyDataSetChanged() } 

并像这样添加来自您的活动/片段的数据

  projectsAdapter.addData(list as MutableList<Object>)