簡體   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