Android Dialog 普通对话框 单选对话框 多选对话框

Posted 今晚看星星

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Dialog 普通对话框 单选对话框 多选对话框相关的知识,希望对你有一定的参考价值。

1 Dialog介绍

  • 对话框是程序不用户交互的一种方式,通常用亍显示当前程序提示信息以及相关说明,以小窗口形式展现

在这里插入图片描述

2 AlertDialog对话框

  • AlertDialog是通过Builder(构造器)来构建
  • AlertDialog为Dialog类的子类,它可以在对话框上提供一些按钮供用户选择。Builder类AlertDialog类的内部类,它的主要作用是用来创建AlertDialog类的对象的,可以把它理解为AlertDialog的构造器

在这里插入图片描述

2.1 主要方法

  1. AlertDialog.Builder setIcon (int iconId)
  • 设定对话框的图标。其中参数为图标的资源ID,返回值为AlertDialog.Builder类的对象
  1. AlertDialog.Builder setTitle(CharSequence title)
  • 设定对话框的标题。其中参数为对话框的标题字符串,返回值为AlertDialog.Builder类的对象
  1. AlertDialog.Builder setMessage(CharSequence message)
  • 设定对话框的内容。其中参数为对话框的提示内容字符串,返回值为AlertDialog.Builder类的对象
  1. AlertDialog.Builder setPositiveButton(CharSequencetext,DialogInterface.OnClickListener listener)
  • 设定对话框上的**确定(肯定)**按钮。其中参数text为按钮上显示的文本,listener为该按钮的单击事件监听器,返回值为AlertDialog.Builder类的对象
  1. AlertDialog.Builder setNegativeButton(CharSequence text,DialogInterface.OnClickListener listener)
  • 设定对话框上的**取消(否定)**按钮。其中参数text为按钮上显示的文本,listener为该按钮
    的单击事件监听器,返回值为AlertDialog.Builder类的对象
  1. AlertDialog.Builder setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)
  • 设定对话框上的**忽略(中立)**按钮。其中参数text为按钮上显示的文本,listener为该按钮
    的单击事件监听器,返回值为AlertDialog.Builder类的对象
  1. AlertDialog create()
  • 创建一个对话框,返回值为AlertDialog类的对象
  1. AlertDialog show()
  • 显示一个对话框,返回值为AlertDialog类的对象

3 设置不同按钮

步骤

  1. 创建构造器AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
  2. 设置属性
  3. 设置内容builder.setMessage(String str)
  4. 设置基本Positive按钮与Negative按钮
  5. 创建并展示
private void dialogAlert_1() {
    // 1. 绑定控件
    bt_1 = findViewById(R.id.bt_1);
    bt_1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // alertDialog 声明
            // 1. 创建AlertDialog 构造器
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

            // 设置dialog的组成部分
            builder.setIcon(R.mipmap.ic_launcher);
            builder.setTitle("温馨提示");
            // 2. 设置内容
            builder.setMessage("确定要退出吗?");

            // 3. 设置点击按钮
            builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // 点击逻辑
                    finish();  // 程序退出
                }
            });

            builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // 不退出
                }
            });

            // 4. 组合各部分后显示
            builder.create().show();
        }
    });
}

在这里插入图片描述

4 设置单选按钮

4.1 单选按钮方法

public AlertDialog.Builder setSingleChoiceItems(CharSequence[] items, int checkedItem, android.content.DialogInterface.OnClickListener listener

  1. 第一个参数指定我们要显示的一组下拉单选框的数据集合
  2. 第二个参数代表索引,指定默认哪一个单选框被勾选上
  3. 第三个参数给每一个单选项绑定一个监听器

步骤

  1. 创建构造器AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
  2. 设置属性
  3. 设置单选按钮内容以及其点击事件builder.setSingleChoiceItems()
  4. 设置基本Positive按钮与Negative按钮
  5. 创建并展示
private void dialogAlert_2() {
    // 1. 绑定控件
    bt_2 = findViewById(R.id.bt_2);

    // 2.保存选中信息

    bt_2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // 创建构造器
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setIcon(R.mipmap.ic_launcher);
            builder.setTitle("选择城市");
            // 设置内容,
            final String[] cities = {"北京", "上海", "广州", "深圳"};
            builder.setSingleChoiceItems(cities, 0, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // 传出数据???
                    Toast.makeText(MainActivity.this, "选中的选项为: " + which, Toast.LENGTH_SHORT).show();
                }
            });

            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    
                }
            });

            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // 不进行操作
                }
            });

            // 显示dialog
            builder.create().show();

        }
    });
}

在这里插入图片描述

5 设置多选按钮

public AlertDialog.Builder setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, android.content.DialogInterface.OnMultiChoiceClickListener listener)

  1. 第一个参数指定我们要显示的一组下拉多选框的数据集合
  2. 第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如果希望指定哪一个多选选项框被选择, 需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,例如 {true, false, false, true}
  3. 第三个参数给每一个多选项绑定一个监听器

步骤:

  1. 创建构造器AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
  2. 设置属性
  3. 设置单选按钮内容以及其点击事件builder.setMultiChoiceItems()
  4. 设置基本Positive按钮与Negative按钮
  5. 创建并展示
private void dialogAlert_3() {
    // 1. 绑定控件
    bt_3 = findViewById(R.id.bt_3);
    bt_3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            // 1. 设置其中的内容
            builder.setIcon(R.mipmap.ic_launcher);
            builder.setTitle("选择多个城市");
            final String[] cities = {"北京", "上海", "深圳", "广州", "香港", "澳门"};
            boolean[] cityChoices = {false, true, false, false, false, false};
            //2. 设置内容

            builder.setMultiChoiceItems(cities, cityChoices, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {

                    }
                }
            });

            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // 不操作
                }
            });

            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });

        builder.create().show();

        }
    });
}

在这里插入图片描述

以上是关于Android Dialog 普通对话框 单选对话框 多选对话框的主要内容,如果未能解决你的问题,请参考以下文章

android 之 Dialog

android dialog

Android移动应用开发之对话框的一些使用

android 8种对话框(Dialog)使用方法汇总

AndroidAndroid 8种对话框(Dialog)

Android:普通对话框Dialog