1
我使用ListView創建AlertDialog,並且適配器以編程方式具有元素CheckAll/UncheckAll元素。 這有效。但是當我通過觸摸屏檢查項目時,然後按checkall,然後取消選中選中的元素保持選中狀態。alertdialog listview uncheck
DialogInterface.OnMultiChoiceClickListener coloursDialogListener = new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
ListView list = ((AlertDialog) dialog).getListView();
long[] a = list.getCheckItemIds();
if (which == 0) {
if (isChecked) {
for (int i = 0; i < list.getCount(); ++i)
list.setItemChecked(i, true);
} else {
for(int i=0;i<list.getCount();++i)
list.setItemChecked(i, false);
}
a = list.getCheckItemIds();//fucntion return empty array
//but on screen checked element is Check.
return;
}
}
};
更新: 當發現錯誤時,我會發現。 如果在功能
setMultiChoiceItems(CharSequence的[]項,布爾[] checkedItems,DialogInterface.OnMultiChoiceClickListener聽者)
予設定參數checkedItems發生錯誤。如果我設置checkedItems參數null bug不會發生。 有什麼想法?
更新:我打開的錯誤追蹤系統谷歌的問題,更多的datails看here
我是使用API 7級getCheckItemIds()requries API 8級。我改變了API級別爲8,但getCheckedItemIds總是返回空數組,即使項目進行檢查。主要的錯誤依然存在 – silentnuke 2011-12-28 21:25:41