📌  相关文章
📜  Android中具有MultipleItemSelection的警报对话框(1)

📅  最后修改于: 2023-12-03 14:59:17.056000             🧑  作者: Mango

Android中具有MultipleItemSelection的警报对话框

在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的文章能够对你有所帮助。