2010-04-10 54 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?幫幫我!