我使用的ListView與ArrayAdapter和具有下面的代碼:的Android的ListView getCheckedPosition返回錯誤SparseBooleanArray
final SparseBooleanArray checked = listViewFilters.getCheckedItemPositions();
if (checked.size() == listViewFilters.getAdapter().getCount()) {
//all is selected
} else {
//collect each value
}
所有工作得很好,直到我需要從開始選擇的所有項目。所以我加入這個代碼,選擇所有項目:
for (int i = 0; i < listViewFilters.getAdapter().getCount(); i++) {
listViewFilters.setItemChecked(i, true);
}
加入上面的代碼後,如果我檢查了一些項目,checked.size()=所有項目的計數反正。預期的結果是 - checked.size()< count。
謝謝。
我認爲你必須發佈你的整個適配器代碼。沒有人確定你在代碼中做了什麼錯誤......可能是一些小錯誤.... – sushildlh
當你檢查一些項目後,你是否更新你的SparseBooleanArray? – Chol
不,'checked.size()'不會改變:只有裏面的內容改變 – pskink