Ich implementiere eine Editor-Anwendung mit Recyclerview.Android - Warum sollten wir adapter.notifydatasetChanged() Methode verwenden?
Beim Hinzufügen, Entfernen und Bearbeiten von Notizen, werde ich eine neueListnote zurückgeben, die zur Anzeige auf der Benutzeroberfläche geändert wurde und adapter.NotifyDataSetChanged() aufrufen.
public static void UpdateUI(List<Entity_NoteItem> newlistNote) {
/*listNoteToDisplayOnUI = newListNote();
adapter.notifyDataSetChanged();*/
adapter = new DisplayUI_CustomIconLabelAdapter(adapter.context, newlistNote);
myRecyclerView.setAdapter(adapter);
}
Aber ich erkannt, dass, wenn ich die listNote zugeordnet, die als Daten des Adapters durch einen anderen Gegenstand mit einer anderen Speicheradresse, wobei das Verfahren NotifyDataSetChanged() keine Wirkung haben eingestellt ist. Daher entschied ich mich für neue Adapter mit neuen listNote und rief myRecyclerView.setAdapter (Adapter) und es wird mehr Wirkung.
Und meine Frage ist: Warum sollten wir die Methode Adapter.NotifyDataSetChanged() verwenden, während wir komplett neu Adapter mit den geänderten Daten und setAdapter wieder ???
Vielen Dank!
Doing setAdapter immer wieder kann ineffizient sein. Der Adapter selbst neigt dazu, Daten zu verwalten. Das notifyDataSetChanged sorgt für eine optimale Aktualisierung der Benutzeroberfläche. – jaibatrik
danke für deine antwort – Duy