2011-12-28 25 views
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

回答