SortedListAdapterCallback
搭配RecyclerView 数据源更新自动更新UI
SortedList mDataList =new SortedList<>(Object.class,new ObjectListCallback (mAdapter));
实现SortedListAdapterCallback抽象类
static class ObjectListCallback extends SortedListAdapterCallback{
public ObjectListCallback (RecyclerView.Adapter adapter){ super(adapter); }
@Override
public int compare(Object o1, Object o2){ return0;}
@Override
public boolean areContentsTheSame(Object oldItem, Object newItem){ returnfalse;} //判断数据源item是否变化,如果变换则掉onChanged()函数
@Override
public boolean areItemsTheSame(Object item1, Object item2){ return 0} } //判断两个对象是否相同,去除重复
当数据有发生改变时,例如删除,增加等,你只需直接对mDataList进行相应操作,再无需关心mAdapter内数据显示更新问题,例如notifyDataChanged等通知函数的调用,因为SortedListAdapterCallback内的回调函数会自动帮你完成。
mDataList.beginBatchedUpdates();
mDataList.addAll(object);
mDataList.endBatchedUpdates();
这样就简单地完成了数据的加载,RecyclerView会自动刷新UI。
##局限性
SortedListAdapterCallback目前仅支持与RecyclerView Adapter搭配使用,并不支持ListView。