Когда мне нужно использовать классический адаптер с ListView, я обновляю свои данные в ListView следующим образом:
myAdapter.swapArray(data);
public swapArray(List<Data> data) {
clear();
addAll(data);
notifyDataSetChanged();
}
Я хотел бы знать, что лучше всего подходит для RecyclerView. Поскольку в адаптере RecyclerView вы не можете делать clear
и addAll
, как в ListView.
Итак, я попробовал только с notifyDataSetChanged
, но это не сработало.
Затем я попытался с swapAdapter на моем представлении:
List<Data> data = newData;
MyRecyclerAdapter adapter = new MyRecyclerAdapter(data);
// swapAdapter on my recyclerView (instead of a .setAdapter like with a classic listView).
recyclerViewList.swapAdapter(adapter, false);
Но с этим последним решением мне все еще нужно создать новый экземпляр моего адаптера, и я чувствую, что это не лучшее решение. Я мог бы просто изменить свои данные без нового MyRecyclerAdapter
.