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。