我有一個ListView
與Checkbox
內Fragment
延伸FragmentList
。奇怪的行爲是當單擊一個項目時檢查多個項目。 奇怪的是,當列表滾動時,某些項目會自動選擇或取消選擇,並且我沒有設置ScrollListener
。片段ListView與複選框奇怪的行爲
下面的代碼:
@Override
public void onStart() {
super.onStart();
getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
CheckBox mCheckBox = (CheckBox) view.findViewById(R.id.chk);
if (mCheckBox.isChecked()) {
mCheckBox.setChecked(false);
getListView().setItemChecked(i, false);
} else {
mCheckBox.setChecked(true);
getListView().setItemChecked(i, true);
}
mCallback.onArticleSelected(i, isChoice);
}
});
}
要求: image http://windrealm.org/tutorials/android/planets-fragmentactivity.png
Listview的視圖被回收。如果listview以已選中狀態回收視圖,則新視圖將處於選中狀態。因此,您需要將檢查的狀態保存爲列表,並在創建時更新視圖。大多數情況下,我們使用SparseBooleanArray。 –