LiveData дублирует MutableList - PullRequest
0 голосов
/ 29 мая 2020

Я хочу обновлять свои элементы Recyclerview всякий раз, когда есть изменение данных в Firestore. Итак, моя активность имеет следующий код:

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 ()" раскомментирован, список очищается и данные об изменении данных не отображаются.

Я пробовал все возможные решения, но я думаю, что где-то не хватает части. застрял очень давно. Большое спасибо за всевозможные предложения.

1 Ответ

0 голосов
/ 31 мая 2020

Так что я застрял в этом и через 12 часов обнаружил крошечное изменение. Я исправил это, заменив for на forEach, и это изменило игру.

Также я очищаю элементы списка перед добавлением элементов.

todoList.clear()
...