从Firestore异步调用中填充RecyclerView

问题描述 投票:0回答:1

我能够从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,

android firebase kotlin google-cloud-firestore coroutine
1个回答
0
投票

[好,我认为您可以在代码中进行一些改进,但是我认为无法按照您想要的方式工作是因为我更新了商品列表,因此必须在notifyDataSetChanged()]上调用您的适配器。

© www.soinside.com 2019 - 2024. All rights reserved.