我已经设置了一个ListView,每行包含一个CheckBox(以及TextView).出于某种原因,当我“检查”其中一个方框时,它似乎“检查”ListView中相反的方框(即,当选择顶部框时,底部复选框变为选中而顶部保持未选中状态.
解决方法
视图在ListView中回收.这就是为什么有些人在你认为不应该被检查的原因.
这是交易:复选框不知道它代表的适配器中的哪个项目.它只是ListView中连续的一个复选框.您需要做一些事情来“教”他们当前正在显示的数据集中的项目.因此,不要使用像String数组那样简单的东西作为适配器的数据,而是创建一个新的模型对象,用于存储复选框的状态.然后,在返回getView()中的行之前,您可以执行以下操作:
//somewhere in your class private RowData getData(int position) { return(((MyAdapter)getlistadapter()).getItem(position)); } //..then in your adapter in getView() RowData object = getModel(position); if(object.isChecked()) { myCheckBox.setChecked(true); } else { myCheckBox.setChecked(false); } //then retun your view.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。