国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

小生經(jīng)驗(yàn)貼 --- adapter的數(shù)據(jù)更新

2019-11-14 21:53:41
字體:
供稿:網(wǎng)友
小生經(jīng)驗(yàn)貼 --- adapter的數(shù)據(jù)更新

如果你的UI是GridView ListView等需要用到adapter添加數(shù)據(jù)的控件

那么有時(shí)候里面的數(shù)據(jù)改變了 List<>內(nèi)容改變了 那就要更新數(shù)據(jù)

關(guān)于adapter的數(shù)據(jù)更新

ada.notifyDataSetInvalidated();

ada.notifyDataSetChanged();

之前一位前輩的帖子比喻得很好

我們可應(yīng)用糧倉來解釋一下,兩者的區(qū)別。

notifyDataSetChanged:糧倉中得糧食少了,或者多了,發(fā)送通知。

notifyDataSetInvalidated:糧倉變換了,比如原來從A倉取糧食,現(xiàn)在換成了B糧倉。

情況不同則調(diào)用不用的函數(shù)進(jìn)行更新。

----------------------華麗分割線------------------------------------

但是在我的測試中,我發(fā)現(xiàn)我屬于第一種情況,則是只改變了數(shù)據(jù)的內(nèi)容 并沒有改變地址,沒有New一個(gè)新的數(shù)據(jù)源出來,按道理調(diào)用notifyDataSetChanged()就可以解決

但是當(dāng)我需要?jiǎng)h除里面一項(xiàng),把NUM減一,調(diào)用notifyDataSetChanged(),發(fā)現(xiàn)Item的第一項(xiàng) 或者是 前幾項(xiàng) 都消失了!

按一下其中一個(gè)Item,圖標(biāo)又恢復(fù)了正常的數(shù)目,正常的顯示。

最后多經(jīng)測試發(fā)現(xiàn) 一開始我的Item是10項(xiàng),如果你添加一項(xiàng) 刪一項(xiàng)把Item數(shù)目控制大于等于10項(xiàng),調(diào)用notifyDataSetChanged(),則不會(huì)有問題

當(dāng)你添加一項(xiàng),刪除兩項(xiàng),Item數(shù)目變成9項(xiàng),則比一開始你setAdapter()時(shí)那個(gè)項(xiàng)數(shù)少 則會(huì)錯(cuò)亂。

只是發(fā)現(xiàn)了這個(gè)規(guī)律,但是原理不知道,如果有大神知道請留下你的答案,感覺不盡。也希望能幫到卡在上面的童鞋。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 绍兴县| 宁南县| 苍南县| 莒南县| 九江市| 远安县| 淳安县| 自治县| 登封市| 宜宾市| 南溪县| 新津县| 澎湖县| 通榆县| 河曲县| 黄骅市| 土默特左旗| 琼结县| 景洪市| 来安县| 通辽市| 双江| 章丘市| 林西县| 乳山市| 搜索| 青铜峡市| 仙桃市| 贡嘎县| 边坝县| 安达市| 吉首市| 湘乡市| 宿松县| 玛曲县| 湘潭县| 兴宁市| 仁布县| 永平县| 高青县| 秭归县|