安卓开发教程28: AlertDialog 提醒对话框

221 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第28天,点击查看活动详情

前面我们介绍了 Android 开发过程中必须需要掌握的控件,那么今天我们继续来介绍日常使用过程中必须要掌握的一个控件 AlertDialog 提醒对话框。

我们在日常开发过程中经常会遇到需要与用户进行交互的一些操作,比如提醒相关信息给用户,需要用户确认的功能,需要用户选择的功能,需要告知用户等一系列操作。那么这些功能我们都可以借助 AlertDialog 来完成。

AlertDialog 基本使用

首先我们先来分析一下 AlertDialog 的基本结构。

image.png

我们看到一个 AlertDialog 大致由四部分组成:

  1. 标题文本
  2. 内容文本
  3. 确认按钮
  4. 取消按钮

下面我们来实现一个 AlertDialog :

我们先来构建一个页面(一个文本控件用以显示内容,一个按钮控件用以触发弹出事件)

image.png

给按钮添加监听器,并构建 AlertDialog,由于 AlertDialog 没有公开的构造方法,所以必须要借助构造器 AlertDialog.Builder 才能完成参数的设置。

public void onClick(View view) {

        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setTitle("标题");
        builder.setMessage("内容");
        builder.setPositiveButton("确定", (dialog, which) ->{
            //点击确定按钮相应操作
            alert_t1.setText("点击了确定");
        });
        builder.setNegativeButton("取消", (dialog, which) ->{
            //点击取消按钮相应操作
            alert_t1.setText("点击了取消");
        });

        builder.create().show();
    }

来看上面我们用到的几个 AlertDialog.Builder 配置的说明:

  1. setTitle,设置对话框的标题文本
  2. setMessage,设置对话框的内容文本
  3. setPositiveButton,设置肯定按钮的文本以及监听器
  4. setNegativeButton,设置取消按钮的文本以及监听器

其中 setPositiveButton、setNegativeButton 方法 我这里用了Lambda来简化了,没简化的如下:

builder.setNeutralButton("中性", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        
    }
})

那么 setNeutralButton 是我们上面示例中没有用到的一个方法,是用来设置一个中性的按钮。

设置完成 AlertDialog.Builder 的对话框的参数之后,我们需要调用构造器的 create 方法 来生成对话框,最后调用对话框实例的 show 方法,在页面上弹出提醒对话框。

我们也可以根据构造器构建对话框对象

        //builder.create().show();

        AlertDialog alertDialog = builder.create();
        alertDialog.show();

有些时候我们还需要给对话框标题的前面加一个图标,我们可以用 setIcon 的方法来设置,例如我们在标题前面加上掘金的logo

image.png

到此为止 AlertDialog 提醒对话框的基本使用方法和功能我们就介绍完了,其实使用起来还是比较简单的,希望大家能掌握它。