[英]RecyclerView.Adapter notifyItemChanged() with async network update?
[英]Update RecyclerView.Adapter
这是我自定义的RecyclerView.Adapter
public abstract class MyCustomRecyclerViewAdapter extends RecyclerView.Adapter {
private Context context;
private List<?> data = new ArrayList<>();
public DataBindingRecyclerViewAdapter(Context context, List<?> data) {
this.context = context;
if (data != null) {
this.data = data;
}
}
public void updateData(List data) {
this.data.clear();
if (data != null) {
this.data.addAll(data);
}
this.notifyDataSetChanged();
}
}
如您所见,它具有方法updateData()
。 此方法刷新适配器。 如果仅使用方法notifyDataSetChanged
则它不是刷新适配器。 我需要清理所有项目,然后使用addAll()
并在最后一次调用notifyDataSetChanged()
。
仅按此顺序有效-刷新适配器。
问题是:也许还有另一个(更简单的)解决方案来刷新适配器?
如果允许null作为数据源,则可以简化完整刷新方法:
public void updateData(List data) {
this.data = data;
notifyDataSetChanged();
}
支持库中还有一个用于处理RecyclerView
模型更新的类: DiffUtil
如果您需要以更优雅的方式处理移动/添加/删除,那绝对值得一看。
将您的notifyDataSetChanged()
放入活动或片段中,然后从适配器中调用它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.