2011-05-10 43 views
0

我使用AlertDialog.BuildersetMultiChoiceItems創建了多項選擇AlertDialog選中/取消選中OnMultiChoiceClickListener.onClick中的項目?

我想檢查/取消選中OnMultiChoiceClickListener內的項目,但我找不到方法。

這裏是我的代碼:

final List<User> users = Util.getUsers(); 
final String[] names = new String[users.size()]; 
final boolean[] checked = new boolean[users.size()]; 
for (int i=0; i < names.length; i++) { 
    names[i] = users.get(i).getName(); 
    checked[i] = selectedUsers.contains(users.get(i).getId()); 
} 
new AlertDialog.Builder(EventFormActivity.this) 
    .setTitle(R.string.schedule_for) 
    .setOnCancelListener(new DialogInterface.OnCancelListener() { 
     @Override 
     public void onCancel(DialogInterface dialog) { 
      updateScheduleForText(); 
     } 
    }) 
    .setMultiChoiceItems(names, checked, new DialogInterface.OnMultiChoiceClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
      if (isChecked) selectedUsers.add(users.get(which).getId()); 
      else selectedUsers.remove((Integer) users.get(which).getId()); 
      // check or uncheck other items? how? 
     } 
    }) 
    .show(); 

我知道我能做到這一點的唯一方法是實現一個自定義ListAdapter,甚至是自定義對話框主題Activity

回答

1

您在OnClick方法中獲得的DialogInterface應該是AlertDialog。然後,您可以使用getButton函數獲取按鈕對象,並且您應該可以從那裏操作各種按鈕。

編輯: 我想我明白現在的問題,你會想與ListView工作,而放在一起,我發現一個例子這個already solved on SO這個例子告訴你如何檢查/從你的OnMultiChoiceClickListener

取消選中列表項
+0

我不需要改變按鈕。我需要更改一個或多個選項的選中狀態。 – Felix 2011-05-10 15:58:09

相關問題