.v7.widget.util.SortedListAdapte

2017-02-03  本文已影响0人  Mr丶陈

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。

上一篇下一篇

猜你喜欢

热点阅读