对话框(Dialog)是一种常用的 UI 组件,它主要用于显示信息、接收用户操作反馈
对话框可以包含各种元素,但是主要还是以文本、按钮为主,其次是列表
其中,基础对话框是 Android 中最简单的对话框,而后是进度对话框、自定义对话框等
AlertDialog.Builder
对象,它用于构建对话框AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("普通对话框");
builder.setMessage("确定退出吗?");
builder.setPositiveButton("确定", (dialog, which) -> {
// 点击确定了做些什么
});
builder.setNegativeButton("取消", (dialog, which) -> {
// 点击取消了做些什么
});
AlertDialog.Builder
对象构建对话框AlertDialog alertDialog = builder.create();
alertDialog.show();
AlertDialog.Builder
对象身上的,而不是 AlertDialog 对象setTitle(CharSequence title)
:设置对话框标题
setMessage(CharSequence message)
:设置对话框消息
setPositiveButton(CharSequence text, final OnClickListener listener)
:设置对话框确定按钮及其点击事件,text 是按钮文本,listener 是按钮回调
setNegativeButton(CharSequence text, final OnClickListener listener)
:设置对话框取消按钮及其点击事件,text 是按钮文本,listener 是按钮回调
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("普通对话框");
builder.setMessage("确定退出吗?");
builder.setPositiveButton("确定", (dialog, which) -> {
Toast.makeText(this, "点击了确定", Toast.LENGTH_SHORT).show();
});
builder.setNegativeButton("取消", (dialog, which) -> {
Toast.makeText(this, "点击了取消", Toast.LENGTH_SHORT).show();
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
AlertDialog.Builder
对象身上的,而不是 AlertDialog 对象setTitle(CharSequence title)
:设置对话框标题
setSingleChoiceItems(CharSequence[] items, int checkedItem, final OnClickListener listener)
:设置对话框单选列表项,items 是列表选项,checkedItem 初始选中索引,listener 是选中时的回调
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("单选对话框");
String[] items = {"物理", "化学", "生物", "历史"};
builder.setSingleChoiceItems(items, -1, (dialog, which) -> {
Toast.makeText(this, "选择了:" + items[which], Toast.LENGTH_SHORT).show();
dialog.dismiss();
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
AlertDialog.Builder
对象身上的,而不是 AlertDialog 对象setTitle(CharSequence title)
:设置对话框标题
setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, final OnMultiChoiceClickListener listener)
:设置对话框多选列表项,items 是列表选项,checkedItems 是每个列表项的初始选中状态,listener 是选中或取消时的回调
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("多选对话框");
String[] items = {"胡萝卜", "白菜", "菠菜", "土豆", "黄瓜", "西红柿"};
boolean[] check = {false, false, false, false, false, false};
builder.setMultiChoiceItems(items, check, (dialog, which, isChecked) -> {
if (isChecked) {
check[which] = true;
Toast.makeText(this, "你选中了:" + items[which], Toast.LENGTH_SHORT).show();
} else {
check[which] = false;
Toast.makeText(this, "你取消了:" + items[which], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
AlertDialog.Builder
对象身上的,而不是 AlertDialog 对象setTitle(CharSequence title)
:设置对话框标题
setItems(CharSequence[] items, final OnClickListener listener)
:设置对话框列表项,items 是列表选项,listener 是点击时的回调
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("课程安排:");
String[] items = {"第一节(数学)", "第二节(地理)", "第三节(历史)", "第四节(美术)"};
builder.setItems(items, (dialog, which) -> {
Toast.makeText(this, items[which], Toast.LENGTH_SHORT).show();
});
AlertDialog alertDialog = builder.create();
alertDialog.show();