我能够从Firestore检索数据(它在populateValletList()
的GlobalScope中明确可用,并且能够从asnyc数据库调用中填充我的RecyclerView,或者当我只是将Vallet
手动添加到我的商品列表中时在populateValletList()
内,但是,当我想从Firestore数据填充该视图时,它不起作用。
不再调用RecyclerAdapter中的onBindViewHolder
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when(holder){
is ValletViewHolder ->{
holder.bind(items[position])
}
}
}
这就是我填充项目private var items : MutableList<Vallet> = ArrayList()
的方式:
fun populateValletList() {
GlobalScope.launch {
items = getAllValletsFromDatabase.executeUseCase()
}
}
我在onActivityCreated中初始化了我的RecyclerView
private fun initRecyclerView(){
recycler_view_vallets.apply{
layoutManager = LinearLayoutManager(context)
addItemDecoration(ValletRecyclerAdapter.ValletItemDecorator(30))
valletAdapter = ValletRecyclerAdapter()
adapter = walletAdapter
}
valletAdapter.populateValletList()
}
这是我第一次使用协同程序,在这里我忽略了什么?
我能够从Firestore检索数据(它在populateValletList()的GlobalScope中明确可用,并且我能够从asnyc数据库调用或当我...时填充RecyclerView,
[好,我认为您可以在代码中进行一些改进,但是我认为无法按照您想要的方式工作是因为我更新了商品列表,因此必须在notifyDataSetChanged()]上调用您的适配器。