2010-04-10 83 views
0

我使用带有CheckBox的ListView,但正如大多数人知道的那样,当您向下滚动滚动时,选中的CheckBox会在您滚动滚动滚动时取消选中。所以我一直在阅读,我发现你可以通过(使用getView)CB的ID到getView的位置参数来保存CheckBox状态!CheckBox在ListView中检查状态

但我不能使用getView与SimpleCursorAdapter,可以吗?因为我使用bindView!

感谢

+0

你刚才问这个是/约SimpleCursorAdapter或毫无疑问,你是不是也问如何使用BaseAdapter? BaseAdapters更灵活,但需要编码才能使用。 – 2010-04-10 08:33:33

+0

林问我是否有一种方法来留在SimpleCursorAdapter,仍然设法解决问题!否则,即时通讯建议,谢谢 – 2010-04-11 08:17:35

回答

0

我设法复选框状态恢复后,我用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; 
    } 
    }); 

但还是奇怪的东西发生,该复选框被在7或8个职位后回收。如果我检查第一个CheckBox和超过10个位置/行,第八个也被检查,当我检查最后一个时,同样的事情发生,8个位置上会有一个检查CheckBox。

任何虽然? Ideias?帮帮我!