我有一个 ListView,在每个列表项中我有一些 TextView 和一个 CheckBox。当我检查复选框并且 onCheckedChangeListener 触发时,一切都会按预期工作。然而,一旦选中一个复选框,就会随机选中其他复选框。这是一个例子。
如果我单击第一个复选框:
8 已检查。
15 已检查。
21 已检查。
27 已检查。
33 已检查。
41已检查。
然后,如果我一直向上滚动,直到 6 才会检查任何内容。下一个是 13。
基本上...发生了什么事?
看来你正在重用convertView
这是传递给getView()
您实现的方法。
Android 会尝试对 ListView 中的不同项目使用相同的视图。您需要 (1) 手动取消选中/选中返回项目内的复选框(始终调用setChecked
在返回 getView 或 (2) 之前不要使用 ConvertView,而是从 getView 返回一个新的 View。
我认为(1)是推荐的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)