IndexOutOfBoundsException: Incon

2017-12-13  本文已影响21人  没风的地方

很明显是数组越界问题

问题产生的根本原因就是数据集合不对应

数据集合不对应的原因在于使用页面下载了新的数据集,并且传递到了adapter里面,但是adapter里面缓存的position信息是前一个数据集的,而数据集却更新了,因为数据集的差异导致了与holder保存的东西不一致从而崩溃

图中第二个方法是正确的

从这两个方法的对比中很清楚的可以看到,是由于更新了数据集合而没有更新缓存的item导致的。

说到这,其实翻一下adapter的众多方法你会发现解决的办法有许多,这是其中一种:

下载完数据之后使用

使用的更新方法

goodlist是新下载的数据集,使用notifydatasetchange()的话我的也会有错,还使得刷新的特效没有了,使用这个方法不会有错还保留了特效效果。

上一篇 下一篇

猜你喜欢

热点阅读