📅  最后修改于: 2023-12-03 14:59:17.056000             🧑  作者: Mango
在Android开发中,警报对话框是一个非常常见的UI组件,而MultipleItemSelection能让用户能够同时选择多个选项,对于某些应用场景是非常必要的。本文将介绍如何在Android中使用MultipleItemSelection的警报对话框。
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择多项");
final String[] items = {"选项1", "选项2", "选项3", "选项4"};
final boolean[] checkedItems = {false, false, false, false};
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkedItems[which] = isChecked;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
String result = "你选择了:\n";
for (int i = 0; i < checkedItems.length; i++) {
if (checkedItems[i]) {
result += items[i] + "\n";
}
}
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
AlertDialog dialog = builder.create();
dialog.show();
首先,我们创建一个AlertDialog的Builder(构建者)对象,并设置对话框标题:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择多项");
接下来,我们创建一个String数组,它包含我们希望出现在对话框中的选项列表,以及一个boolean数组,它将跟踪哪些选项被选中:
final String[] items = {"选项1", "选项2", "选项3", "选项4"};
final boolean[] checkedItems = {false, false, false, false};
然后,我们调用setMultiChoiceItems方法将选项列表传递给对话框,并提供一个OnMultiChoiceClickListener以便我们能够监听选项的选择状态。在点击时,我们更新我们的checkedItems数组以反映每个选项的当前选择状态:
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkedItems[which] = isChecked;
}
});
接下来,我们指定一个积极的按钮(即确定按钮)并为该按钮设置一个点击侦听器,它在用户单击该按钮时将显示选中的选项:
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
String result = "你选择了:\n";
for (int i = 0; i < checkedItems.length; i++) {
if (checkedItems[i]) {
result += items[i] + "\n";
}
}
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
});
最后,我们指定一个消极的按钮(即取消按钮)并为该按钮设置一个点击侦听器,它将隐藏对话框:
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
最后,我们使用Builder创建对话框并显示它:
AlertDialog dialog = builder.create();
dialog.show();
使用Android上的警报对话框和MultipleItemSelection,我们可以在应用程序中实现多选选项的UI。这对于一些特定的应用场景非常有用。希望这篇介绍MultipleItemSelection的AlertDialog的文章能够对你有所帮助。