我正在使用AlertDialog
和AlertDialog.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
。
答案 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。