很明顯是數(shù)組越界問題
問題產(chǎn)生的根本原因就是數(shù)據(jù)集合不對(duì)應(yīng)
數(shù)據(jù)集合不對(duì)應(yīng)的原因在于使用頁面下載了新的數(shù)據(jù)集,并且傳遞到了adapter里面,但是adapter里面緩存的position信息是前一個(gè)數(shù)據(jù)集的,而數(shù)據(jù)集卻更新了,因?yàn)閿?shù)據(jù)集的差異導(dǎo)致了與holder保存的東西不一致從而崩潰

圖中第二個(gè)方法是正確的
從這兩個(gè)方法的對(duì)比中很清楚的可以看到,是由于更新了數(shù)據(jù)集合而沒有更新緩存的item導(dǎo)致的。
說到這,其實(shí)翻一下adapter的眾多方法你會(huì)發(fā)現(xiàn)解決的辦法有許多,這是其中一種:
下載完數(shù)據(jù)之后使用

使用的更新方法
goodlist是新下載的數(shù)據(jù)集,使用notifydatasetchange()的話我的也會(huì)有錯(cuò),還使得刷新的特效沒有了,使用這個(gè)方法不會(huì)有錯(cuò)還保留了特效效果。