Android ListView储存点击记录,改变背景颜色顺序混乱的问题

本人是一名android新手,在一次写demo的时候想存储listview中被点击过的item,并在下次加载时,改变被点击过的item的背景.但出现了顺序混乱的问题

使用SharePreferences对点击过的条目数据的id进行存储


明明只有一条数据被点击了,但在我不断的反复滑动后许多item的背景颜色也发生了改变

在csdn看到这样一张图片


发现原来改变背景颜色的item在划出屏幕后就会被加入到RecycleBin,然后底部显示的item其实是从RecycleBin中取出来的,而我使用了ViewHolder的机制,猜想可能是背景色也被默认存储了下来.

解决方法:

其实我也没有想到那么简单.....

在判断是否点击过的item的时候,加一个else的判断就可以了.


刚开始学习android,希望大家多多指教!!!

你可能感兴趣的:(Android ListView储存点击记录,改变背景颜色顺序混乱的问题)