android – ListView中的复选框 – 当我选择第一个时,它检查最后一个,反之亦然

前端之家收集整理的这篇文章主要介绍了android – ListView中的复选框 – 当我选择第一个时,它检查最后一个,反之亦然前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经设置了一个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.
原文链接:https://www.f2er.com/android/314529.html

猜你在找的Android相关文章