我在RecyclerView
网络调用方法中使用适配器实现了onResponse
的简单实现。如何删除所有以前的RecyclerView
项或刷新RecyclerView
?
我使用了adapter.notifyDataSetChanged();
和recyclerView.invalidate();
,但都没有使用过。
答案 0 :(得分:0)
创建适配器的新实例,然后调用recyclerview.setAdapter(newAdapter);
这将删除旧的适配器并使用更新的项目设置新适配器。
如果您只想更新当前适配器中的项目,请在适配器内创建一个方法:
public void addItems(ArrayList<EventObject> eventList) {
this.eventList.addAll(eventList);
notifyDataSetChanged();
}
然后拨打adapter.addItems(moreItems);
答案 1 :(得分:0)
我建议你使用不同的方法
答案 2 :(得分:0)
在OnResponse
方法之外创建一次适配器。在适配器内部,有一个设置项目的方法,如:
public void setItems(ArrayList<MyObject> items){
this.items = items;
notifyDataSetChanged();
}
然后,在onResponse
方法中,您可以拨打adapter.setItems(items);
答案 3 :(得分:0)
您需要在调用notifyDataSetChanged()之前清除列表。
使用以下代码行
adapter.clearData();
不要忘记添加此方法
public void clearData() {
int size = this.myList.size();
this.myList.clear();
this.notifyItemRangeRemoved(0, size);
}
}
答案 4 :(得分:0)
以下步骤可以帮助您
建议 -