LiveData正在复制MutableList

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

每当Firestore中发生数据更改时,我都想更新Recyclerview物品。所以我的活动有以下代码:

taskViewModel.fetchedTaskLiveData.observe(
   this, Observer {
    if (it != null) {
     todoListAdapter.setListData(it)
     showRecyclerView()
   }

内部适配器setListData方法:

fun setListData(data: MutableList<Todo>) {
        //this.todoList.clear()
        this.todoList.addAll(data)
        notifyDataSetChanged()
    }

在这种情况下,每当获取更改的列表时,Recyclerview都会复制并添加更改的列表在旧列表下面。

并且如果未注释“ this.todoList.clear()”,则列表将被清除,并且在数据更改时不会显示任何数据。

我尝试了所有可能的解决方案,但我认为某个地方缺少一部分。很久以来卡住了。非常感谢您的各种建议。

android mvvm android-livedata mutablelivedata
1个回答
0
投票

因此,我坚持了这一点,并在12小时后发现了一个微小的变化。我通过用for更改forEach来更正它,从而改变了游戏。

此外,我还要在添加项目之前清除列表项目。

todoList.clear()
© www.soinside.com 2019 - 2024. All rights reserved.