2 sinat 25136209 sinat_25136209 于 2017.08.31 15:58 提问

关于安卓中的listview的复用的问题

就是在listview上有若干的item,他们结构相同,但是我想让某个item在点击了这个item之后右边多一个文字,但是结果最后一个条目能复用了第一个的,然后结果右边新加的文字也显示出来了。怎么样才能让最后一个条目不复用第一个条目新添加的属性?
如图,后面的已实名是点击了第一个条目新加上的,之前的条目都是像左边那样的

图片说明

8个回答

SilenceOO
SilenceOO   2017.08.31 18:28
已采纳

可以在bean里面加一个isChecked字段来判断哪个item需要显示右边的文字,可以参考博客http://blog.csdn.net/silenceoo/article/details/75577347

qq_36255612
qq_36255612   2017.08.31 16:48

亲,这里就体现了开发的习惯问题了。
你在设置数据时,无论textview 或者imageview首先设置为null,
比如,xxx.settext("")之后在设置数据
又如:xxx.setimagebackgroung(null)在设置数据
这些都能防止错乱、服用的bug的,其实说白了,这就是习惯问题

RottenWang
RottenWang   2017.08.31 17:14

可以在数据里 添加字段 来标识某一控件的状态信息,根据字段的不同值 来做不同的初始化 就可以避免这种问题了

chenbaige
chenbaige   Rxr 2017.08.31 17:25

把数据和item绑定在一起,填充数据的时候判断一下就不会出现这种情况了,通过convertview的settag方法去添加标记。还不理解的话推荐看一下这篇处理错乱的文章:http://blog.csdn.net/wwj_748/article/details/43484177

qq_24029841
qq_24029841   2017.08.31 17:27

填充数据的时候判断,楼上的博客不错

say_from_wen
say_from_wen   2017.09.01 09:53

平常开发中 我顶楼上

qq_21206775
qq_21206775   2017.09.01 15:40

给个默认值就好了,就像图片会错乱,你给个默认的背景图

wyg1065395142
wyg1065395142   2017.09.01 18:51

根据状态进行判断,在getview中设置是不是显示,不过楼上回答的都很详细

Csdn user default icon
上传中...
上传图片
插入图片