我有一個帶有自定義BaseAdapter的ListView。列表項包含需要從數據庫表示屬性的CheckBoxes。帶有複選框的Android ListView:自動取消選中
我使用CheckBox.setOnCheckedChangeListener和一個新的OnCheckedChangeListener來檢測更改,所以我可以根據CheckBox的當前狀態更改數據庫。迄今爲止非常簡單的東西。
但是,當進一步向下滾動列表時,以前檢查過的CheckBoxes會被取消選中。我懷疑這種情況發生後,視圖回收(我使用convertView/ViewHolder技術)。
我該如何解決這個問題?出了什麼問題?
在此先感謝。
編輯:爲了使事情更清楚一點,問題是,回收的觀點在某種程度上要求OnCheckedChangeListener#onCheckedChanged(buttonView,器isChecked)與==器isChecked假。
我在使用ExpandableListView的子視圖中的複選框時遇到同樣的問題,而且你的技巧也適用於我。我必須把它放在getChildView(..)中,在那裏檢查我們是否正在回收(即,convertView不爲空),並在此情況下將複選框的OnCheckedChangeListener設置爲null。感謝您的解決方案。 – 2010-08-19 05:33:13
我有一個類似的問題,但我不知道如何解決它:http://stackoverflow.com/questions/4586442/listview-from-cursor-with-checkbox任何想法? – ekawas 2011-01-05 15:24:40
我知道它的舊線程,但我有同樣的問題。它似乎像onCheckedChangeListener方法隨機調用。你是什麼意思通過checkbox.setOnCheckedChangeListener(null)?它讓我感到困惑!看看我的代碼,如果你想:http://stackoverflow.com/questions/5444355/android-listview-with-checkbox-problem – mixkat 2011-03-27 03:05:41