每当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()”,则列表将被清除,并且在数据更改时不会显示任何数据。
我尝试了所有可能的解决方案,但我认为某个地方缺少一部分。很久以来卡住了。非常感谢您的各种建议。
因此,我坚持了这一点,并在12小时后发现了一个微小的变化。我通过用for
更改forEach
来更正它,从而改变了游戏。
此外,我还要在添加项目之前清除列表项目。
todoList.clear()