选中/取消选中OnMultiChoiceClickListener.onClick中的项目?

时间:2011-05-10 15:17:06

标签: android alertdialog

我正在使用AlertDialogAlertDialog.Builder创建多项选择setMultiChoiceItems

我想检查/取消选中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

2 个答案:

答案 0 :(得分:1)

OnClick方法中的DialogInterface应该是一个AlertDialog。然后,您可以使用getButton函数来获取按钮对象,并且您应该可以从那里操作各种按钮。

编辑: 我想我现在理解这个问题了,你想要使用ListView虽然整理了一个例子我发现了这个already solved on SO这个例子向你展示了如何检查/取消选中OnMultiChoiceClickListener中的列表项

答案 1 :(得分:0)

试试这个:How uncheck items in AlertDialog (setMultiChoiceItems)?

AskMeSelected[which] = false;
alertDialogList.setItemChecked(which, false);

请务必将布尔数组的相应位置设置为false。

相关问题