2012-02-04 36 views
2

我想打開一個複選框,如果對話框打開,但setItemChecked似乎沒有工作..這是我的代碼。我已經檢查了其他答案,但它沒有幫助。有人知道我的代碼是否有問題?android-setItemChecked無法正常工作

謝謝。

 alertDialogBuilder.setMultiChoiceItems(R.array.list_array, list_values, new DialogInterface.OnMultiChoiceClickListener() { 
     public void onClick(DialogInterface dialog, int item, boolean isChecked) { 
      Toast.makeText(getContext(), "You have selected " + list[item], Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    alertDialogBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      SparseBooleanArray checkedItems = ((AlertDialog) dialog).getListView().getCheckedItemPositions(); 
      int size = checkedItems.size(); 
      Toast.makeText(getContext(), "Save " + size, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    alertDialog = alertDialogBuilder.create(); 
    if (isAlreadyOpened) { 
     alertDialog.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     alertDialog.getListView().setItemChecked(4, true); 
    } 

回答

0

你的應用代碼,如果(isAlreadyOpened)是不工作... 由於在語句執行的時間錯誤的條件。

只需設置

alertDialog.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     alertDialog.getListView().setItemChecked(4, true); 

您顯示對話框在創建對話框

+1

的時間之前,我通過刪除if語句,看看它的工作原理簡化了代碼,但它仍然無法正常工作... \t \t alertDialog = alertDialogBu​​ilder.create(); \t \t alertDialog.getListView()。setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); (),(),(),();}} – user826323 2012-02-04 20:34:52

+0

我找到了解決方法。我正在改變list_values的布爾值。它以我想要的方式工作...... – user826323 2012-02-04 20:50:00