SortedListAdapterCallback
? 搭配RecyclerView 數(shù)據(jù)源更新自動(dòng)更新UI
SortedList? mDataList =new SortedList<>(Object.class,new ObjectListCallback (mAdapter));
實(shí)現(xiàn)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;} //判斷數(shù)據(jù)源item是否變化刁俭,如果變換則掉onChanged()函數(shù)
@Override
public boolean areItemsTheSame(Object item1, Object item2){ return 0} } //判斷兩個(gè)對(duì)象是否相同,去除重復(fù)
當(dāng)數(shù)據(jù)有發(fā)生改變時(shí)俺亮,例如刪除,增加等窗市,你只需直接對(duì)mDataList進(jìn)行相應(yīng)操作卧波,再無(wú)需關(guān)心mAdapter內(nèi)數(shù)據(jù)顯示更新問(wèn)題骡男,例如notifyDataChanged等通知函數(shù)的調(diào)用惹恃,因?yàn)镾ortedListAdapterCallback內(nèi)的回調(diào)函數(shù)會(huì)自動(dòng)幫你完成夭谤。
mDataList.beginBatchedUpdates();
mDataList.addAll(object);
mDataList.endBatchedUpdates();
這樣就簡(jiǎn)單地完成了數(shù)據(jù)的加載,RecyclerView會(huì)自動(dòng)刷新UI巫糙。
##局限性
SortedListAdapterCallback目前僅支持與RecyclerView Adapter搭配使用朗儒,并不支持ListView。