Android關(guān)于Adapter更新數(shù)據(jù)問題案例

adapter更新數(shù)據(jù)的常見兩種方式:


一、adapter里面new一個(gè)集合,對(duì)外只提供添加數(shù)據(jù)和更新數(shù)據(jù)的方法

MyAdapter extends BaseAdapter {

ArrayList<T> mItemList = new ArrayList<T>();

? ? ?public MyAdapter(){}

? ? ?public void updateData(List<T> list) {

? ? ? ? ? ?if(null == list) return;

mitemlist.clear();

mitemlist.addAll(list);

notifyDataSetChanged();

}

public void addItem(T data) {

mitemlist.add(data);

}

public void addData(List<T> list) {

if(null == list) return;

mitemlist.addAll(list);

}

}


二、通過構(gòu)造方法從外面?zhèn)魅?,更新?shù)據(jù)的時(shí)候只需在外面集合更新,然后調(diào)用adapter.notifyDataSetChanged()方法即可。


注意:兩種最好別混用,否則很容易出bug,比如,從外部集合給adapter提供數(shù)據(jù)集合,但同時(shí)又提供以上的updateData()方式更新數(shù)據(jù),如果把外部提供給adapter的數(shù)據(jù)集合傳入updateData()因?yàn)閡pdateData()會(huì)先clear,然后再add,這樣就會(huì)導(dǎo)致外部數(shù)據(jù)集合和adapter數(shù)據(jù)集合(實(shí)際上這兩種是同一個(gè)集合)都被清空。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容