LiveData 正在复制 MutableList
LiveData is duplicating MutableList
我想在 Firestore 中发生数据更改时更新我的 Recyclerview 项目。
所以我的 activity 有以下代码:
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()" 未注释,列表将被清除并且数据更改时不会显示任何数据。
我尝试了所有可能的解决方案,但我认为某处遗漏了一部分。卡住了很久。
非常感谢各种建议。
所以我一直坚持这个,并在 12 小时后发现了一个微小的变化。
我通过将 for
更改为 forEach
来更正它,这改变了游戏。
此外,我在添加项目之前清空列表项目。
todoList.clear()
我想在 Firestore 中发生数据更改时更新我的 Recyclerview 项目。 所以我的 activity 有以下代码:
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()" 未注释,列表将被清除并且数据更改时不会显示任何数据。
我尝试了所有可能的解决方案,但我认为某处遗漏了一部分。卡住了很久。 非常感谢各种建议。
所以我一直坚持这个,并在 12 小时后发现了一个微小的变化。
我通过将 for
更改为 forEach
来更正它,这改变了游戏。
此外,我在添加项目之前清空列表项目。
todoList.clear()