很明显是数组越界问题
问题产生的根本原因就是数据集合不对应
数据集合不对应的原因在于使用页面下载了新的数据集,并且传递到了adapter里面,但是adapter里面缓存的position信息是前一个数据集的,而数据集却更新了,因为数据集的差异导致了与holder保存的东西不一致从而崩溃
从这两个方法的对比中很清楚的可以看到,是由于更新了数据集合而没有更新缓存的item导致的。
说到这,其实翻一下adapter的众多方法你会发现解决的办法有许多,这是其中一种:
下载完数据之后使用
goodlist是新下载的数据集,使用notifydatasetchange()的话我的也会有错,还使得刷新的特效没有了,使用这个方法不会有错还保留了特效效果。