BasetQuickAdapter setnewData 后 使用adddata出現(xiàn)數(shù)據(jù)混亂
1.情景:
發(fā)現(xiàn)在 第一次加載成功時(shí) 使用 BasetQuickAdapter-》setnewData 洛搀。加載自己寫的一個(gè)統(tǒng)一處理返回參數(shù)的工具類 (注意是類) 會(huì)出現(xiàn)一個(gè)bug翻頁時(shí)會(huì)出現(xiàn)當(dāng)前頁的兩份數(shù)據(jù) 查看內(nèi)存發(fā)現(xiàn)矮固,重復(fù)是引用了同一個(gè)對(duì)象山上,而之前的數(shù)據(jù)都會(huì)清空,然而使用BasetQuickAdapter-》adddata 缺不會(huì)出現(xiàn)問題毒费,為了編碼嚴(yán)謹(jǐn)性和安全性。琢磨了一天哀卫。
2.調(diào)試過程:
在返回?cái)?shù)據(jù)時(shí)只一條數(shù)據(jù)看看程序會(huì)呈現(xiàn)什么效果 ----程序竟然自己加載了我加載進(jìn)來的所有數(shù)據(jù)還附帶一條重復(fù)數(shù)據(jù)澜沟。
結(jié)論:
在第一次加載成功的時(shí)候我會(huì)使用傳進(jìn)來一個(gè)解析數(shù)據(jù)的工具類府蔗。然后 我直接setnewData數(shù)據(jù)源設(shè)置到了類里面的保存要返回的數(shù)據(jù)列表上晋控。第二次解析的時(shí)候當(dāng)他自動(dòng)清除上次數(shù)據(jù)然后開始保存解析后的數(shù)據(jù)的時(shí)候(解釋為什么之前的item都清空了)這時(shí)候adapter的數(shù)據(jù)源變成了第二頁內(nèi)容。然后addall他本身的時(shí)候 又添加了一遍姓赤。由于BasetQuickAdapter赡译。adddata方法有刷新效果所以 他一次顯示出了兩份第二頁內(nèi)容。然后我就把代碼改回了之前寫的樣子不铆。