Dialog 弹框(几种常用弹框)

这篇博客详细介绍了Android中Dialog的使用,包括如何设置标题、图标、内容,以及如何创建带有多选、单选列表和不同按钮的对话框。通过示例代码展示了如何自定义和展示各种类型的Dialog。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dialog继承Object,异步调用,不会阻塞UI线程。以下是对他的整体框架:

最常用的还是AlertDialog.今天主要是讲他的用法。AlertDialog的用法也很简单

常用的方法:

 setTitle :为对话框设置标题
 setIcon :为对话框设置图标
 setMessage:为对话框设置内容
 setView : 给对话框设置自定义样式
 setItems :设置对话框要显示的一个list,一般用于显示几个命令时
 setMultiChoiceItems :用来设置对话框显示一系列的复选框
 setSingleChoiceItems :用来设置对话框显示一系列的单选框
 setNeutralButton    :普通按钮
 setPositiveButton   :给对话框添加"Yes"按钮
 setNegativeButton :对话框添加"No"按钮
 create : 创建对话框
 show :显示对话框

setCancelable:点击空白,弹框是否消失(true 消失)(flase 不消失)

1.只显示标题和内容

AlertDialog alertDialog1 = new AlertDialog.Builder(this)
        .setTitle("这是标题")//标题
        .setMessage("这是内容")//内容
        .setIcon(R.mipmap.ic_launcher)//图标
        .create();
alertDialog1.show();

 

2.有多个按钮

setPositiveButton  设置一个确定按钮
setNegativeButton  设置一个取消按钮
setNeutralButton   设置一个普通按钮
这三个按钮可以随意组合使用不冲突。


AlertDialog alertDialog2 = new AlertDialog.Builder(this)
        .setTitle("这是标题")
        .setMessage("有多个按钮")
        .setIcon(R.mipmap.ic_launcher)
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(AlertDialogActivity.this, "这是确定按钮", Toast.LENGTH_SHORT).show();
            }
        })
 
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(AlertDialogActivity.this, "这是取消按钮", Toast.LENGTH_SHORT).show();
            }
        })
        .setNeutralButton("普通按钮", new DialogInterface.OnClickListener() {//添加普通按钮
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(AlertDialogActivity.this, "这是普通按钮按钮", Toast.LENGTH_SHORT).show();
            }
        })
        .create();
alertDialog2.show();

3.一个列表

setItems  里面写列表数据


final String[] items3 = new String[]{"语文", "数学", "英语", "物理"};//创建item
AlertDialog alertDialog3 = new AlertDialog.Builder(this)
        .setTitle("选择您喜欢的课程")
        .setIcon(R.mipmap.ic_launcher)
        .setItems(items3, new DialogInterface.OnClickListener() {//添加列表
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(AlertDialogActivity.this, "点的是:" + items3[i], Toast.LENGTH_SHORT).show();
            }
        })
        .create();
alertDialog3.show();

4.单选列表

setSingleChoiceItems  单选框列表


final String[] items4 = new String[]{"语文", "数学", "英语", "物理"};//创建item
AlertDialog alertDialog4 = new AlertDialog.Builder(this)
        .setTitle("选择您喜欢的课程")
        .setIcon(R.mipmap.ic_launcher)
        .setSingleChoiceItems(items4, 0, new DialogInterface.OnClickListener() {//添加单选框
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                index = i;
            }
        })
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(AlertDialogActivity.this, "这是确定按钮" + "点的是:" + items4[index], Toast.LENGTH_SHORT).show();
            }
        })
 
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(AlertDialogActivity.this, "这是取消按钮", Toast.LENGTH_SHORT).show();
            }
        })
        .create();
alertDialog4.show();

5.多选列表


setMultiChoiceItems 多选框


final String[] items5 = new String[]{"语文", "数学", "英语", "物理"};//创建item
final boolean[] booleans = {true, true, false, false};
AlertDialog alertDialog5 = new AlertDialog.Builder(this)
        .setTitle("选择您喜欢的课程")
        .setIcon(R.mipmap.ic_launcher)
        .setMultiChoiceItems(items5, booleans, new DialogInterface.OnMultiChoiceClickListener() {//创建多选框
            @Override
            public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                booleans[i] = b;
            }
        })
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加"Yes"按钮
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                StringBuilder stringBuilder = new StringBuilder();
                for (int a = 0; a < booleans.length; a++) {
                    if (booleans[a]) {
                        stringBuilder.append(items5[a] + " ");
                    }
                }
                Toast.makeText(AlertDialogActivity.this, "这是确定按钮" + "点的是:" + stringBuilder.toString(), Toast.LENGTH_SHORT).show();
            }
        })
        .setNegativeButton("取消", new DialogInterface.OnClickListener() {//添加取消
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(AlertDialogActivity.this, "这是取消按钮", Toast.LENGTH_SHORT).show();
            }
        })
        .create();
alertDialog5.show();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值