Dialog 学习笔记

6be1b6da99df753e0ee1f57020486577.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、Dialog 简介
二、Dialog 基本样式解析
三、简单对话框的实现
四、多选按钮对话框
五、单选按钮对话框
六、列表对话框
七、水平进度条对话框
八、圆形进度条对话框
九、自定义图文对话框
十、自定义输入对话框
十一、自定义样式对话框
十二、自定义Loading样式对话框
十三、继承 DialogFragment 实现对话框
十四、Activity形式的 对话框
十五、倒计时 30s Dialog实现

一、Dialog 简介

在学习Dialog 之前,我们先了解一下Dialog的基础关系。
Dialog的继承关系如下:

java.lang.Object
   ↳    android.app.Dialog

Dialog 是Android 常用控件之一,主要以弹出框的形式与用户进行交互。对话框是提示用户作出决定或输入额外信息的小窗口。对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件。

二、 Dialog 基本样式解析

407cd6b1d24b0b94d87fcaff7fbddfc6.jpeg

Dialog 基本样式

1.标题

这是可选项,只应在内容区域被详细消息、列表或自定义布局占据时使用。如需陈述的是一条简单消息或问题(如图 上图中的对话框),则不需要标题。

2.内容区域

它可以显示消息、列表或其他自定义布局。

3.操作按钮

对话框中的操作按钮不应超过三个。

三、简单对话框的实现

  • 1.实现效果:

ced46a00ea824c93f579f14e87a37068.jpeg

简单对话框

  • 2.实现代码如下:

/**
     * 简单对话框
     */
    public void SimpleDialog(View view) {

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.gril).setTitle("简单对话框")
                .setMessage("设置Dialog 显示的内容")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        Toast.makeText(DiaLogMethods.this, "点击了确定按钮",
                                Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("Cancle", null).create().show();

    }

四、多选按钮对话框

  • 1.实现效果:

8bff67b799dff11007725a3bee6d839d.jpeg

多选按钮对话框

  • 2.实现代码:

/**
     * 多选按钮对话框
     * */
    public void MultiChoiceDialog(View view) {
        final String font[] = { "小号字体", "中号字体", "大号字体", "超大号字体" };
        final boolean[] MultiChoice = new boolean[] { false, true, false, false };
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("多选对话框")
                .setIcon(R.drawable.ic_launcher)
                .setMultiChoiceItems(font, MultiChoice,
                        new DialogInterface.OnMultiChoiceClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which, boolean isChecked) {
                                MultiChoice[which] = isChecked;
                                String choiceString = "";
                                for (int i = 0; i < MultiChoice.length; i++) {
                                    if (MultiChoice[i]) {
                                        choiceString = choiceString + font[i]
                                                + "  ";
                                    }
                                }

                                if (choiceString.equals("")
                                        || choiceString.length() == 0) {

                                    // 都不选的处理方法

                                    Toast.makeText(DiaLogMethods.this,
                                            "请选择一个内容", Toast.LENGTH_SHORT)
                                            .show();
                                } else {

                                    Toast.makeText(DiaLogMethods.this,
                                            "选择的字体为" + choiceString,
                                            Toast.LENGTH_SHORT).show();

                                }

                            }
                        }).setPositiveButton("OK", null)
                .setNegativeButton("Cancle", null).create().show();

    }

五、单选按钮对话框

  • 1.实现效果:

8a434d40911c1f319d1eb8f313902f2e.jpeg

单选按钮对话框

  • 2.实现代码如下:

/**
     * 单选按钮对话框实现
     **/
    public void SingleChoiceDialog(View view) {
        final String font[] = { "小号字体", "中号字体", "大号字体", "超大号字体" };
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("单选对话框")
                .setIcon(R.drawable.ic_launcher)
                .setSingleChoiceItems(font, 0,
                        new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                Toast.makeText(DiaLogMethods.this,
                                        "选择的字体为:" + font[which],
                                        Toast.LENGTH_SHORT).show();
                                dialog.dismiss();
                            }
                        }).setPositiveButton("OK", null)
                .setNegativeButton("Cancle", null).create().show();

    }

六、列表对话框

  • 1.实现效果如下:

f29e627e4dc5d5dd2823ae9753c0bbb7.jpeg

列表对话框

  • 2.实现代码如下:

/**
     * 列表对话框实现
     **/
    public void ListItemDialog(View view) {
        final String font[] = { "小号字体", "中号字体", "大号字体", "超大号字体" };
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值