android适配器问题(listview点击问题)

最近遇到奇怪的问题纠结了好久,不知道什么原因。
在适配器中,有一个hashmap,
用来存放listview中item的选中状态。Integer为item的id(0,1,2,3......),
boolean默认全设为了false,选中item后改为true,true的话就改变item背景。
适配器部分代码如下:
图片说明

图片说明

图片说明

然后listview的item点击事件执行的就是把选中的行的状态由false改为true:
图片说明

现在我有两个页面的列表用的是这个相同的适配器,但是一个列表没有问题,
另一个列表就出现问题了,在linechoose方法中打印状态,发现状态确实由false
变为了true,但是在适配器中打印状态,却全都是false,不知道为什么。
请各位帮帮忙。

贴getview方法。多半是不理解listview的view复用原理导致的

我感觉是赋值出问题了吧,一边值没问题一边有问题的话

在适配器中setIsSelected()这个方法你都没有用到,而且你setIsSelected()这个方法里面似乎写的有点问题

我是直接在DataBean里面添加一个 boolean isSelect 属性,在getView里直接判断这个,改变背景或者其他的操作。点击之后刷新,最后获取选取的把List循环判断拿出isSelect为true的。

getview方法贴出来啊。看你是怎么加载view的