繁体   English   中英

ListView中CheckBox的检查状态

[英]CheckBox checked state in a ListView

我正在将ListView与CheckBox一起使用,但是众所周知,当您向下滚动时,选中的CheckBox在向上滚动时会被取消选中。 因此,我一直在阅读,发现可以将CB的ID传递(使用getView)到getView的position参数以保存CheckBox状态!

但是我不能将getView与SimpleCursorAdapter一起使用,可以吗? 因为我正在使用bindView!

谢谢

发生的事情是回收。 屏幕上可容纳7行,向下滚动时,顶部的将被回收,底部的将被回收。 您应该做的是保存复选框的状态。

这是解决类似问题的好方法:

https://github.com/commonsguy/cw-android/tree/master/FancyLists/RateList

使用setViewBinder向上/向下滚动后,我设法恢复了复选框状态(在另一个答案中看到了它):

    mAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
    public boolean setViewValue(View view, Cursor cursor, int columnIndex) {            
        if(columnIndex==4) {
            cb=(CheckBox)view;
            cb.setChecked(cursor.getInt(4)==0? false:true);
            return true;
        }
    return false;
    }
    });

但是仍然发生了一些奇怪的事情,CheckBox在7或8个位置后被回收。 如果我检查第一个CheckBox并且有10个以上的位置/行,则还会检查第8个,当我检查最后一个时,也会发生同样的情况,上面8个位置将有一个Checked CheckBox。

可以吗 爱迪亚? 救命!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM