Я использую приложение «Блокнот», используя Recyclerview.Android - Почему shoud мы используем метод adapter.notifydatasetChanged()?
При добавлении, удалении и редактировании заметки я верну новый элемент списка, который был изменен для отображения в пользовательском интерфейсе и адаптера вызова.NotifyDataSetChanged().
public static void UpdateUI(List<Entity_NoteItem> newlistNote) {
/*listNoteToDisplayOnUI = newListNote();
adapter.notifyDataSetChanged();*/
adapter = new DisplayUI_CustomIconLabelAdapter(adapter.context, newlistNote);
myRecyclerView.setAdapter(adapter);
}
Но я понял, что если я назначен listNote, который установлен в качестве данных адаптера с помощью другого объекта с другим адресом памяти, метод NotifyDataSetChanged() не будет иметь никакого эффекта. Поэтому я решил использовать новый адаптер с новым списком и вызвал myRecyclerView.setAdapter (адаптер), и он получает больше эффекта.
И мой вопрос: почему мы должны использовать метод Adapter.NotifyDataSetChanged(), в то время как мы можем полностью новый адаптер с измененными данными и setAdapter снова ???
Спасибо!
Doing setAdapter снова и снова может оказаться неэффективным. Сам адаптер имеет тенденцию управлять данными. NotifyDataSetChanged позаботится об обновлении пользовательского интерфейса оптимально. – jaibatrik
спасибо за ваш ответ – Duy