
Android Dialog 普通对话框 单选对话框 多选对话框
发布日期:2021-05-07 23:05:23
浏览次数:13
分类:原创文章
本文共 6191 字,大约阅读时间需要 20 分钟。
文章目录
1 Dialog介绍
- 对话框是程序不用户交互的一种方式,通常用亍显示当前程序提示信息以及相关说明,以小窗口形式展现
2 AlertDialog对话框
- AlertDialog是通过
Builder
(构造器)来构建 - AlertDialog为Dialog类的子类,它可以在对话框上提供一些按钮供用户选择。Builder类是AlertDialog类的内部类,它的主要作用是用来创建AlertDialog类的对象的,可以把它理解为AlertDialog的构造器
2.1 主要方法
AlertDialog.Builder setIcon (int iconId)
- 设定对话框的图标。其中参数为图标的资源ID,返回值为
AlertDialog.Builder
类的对象
AlertDialog.Builder setTitle(CharSequence title)
- 设定对话框的标题。其中参数为对话框的标题字符串,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setMessage(CharSequence message)
- 设定对话框的内容。其中参数为对话框的提示内容字符串,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setPositiveButton(CharSequencetext,DialogInterface.OnClickListener listener)
- 设定对话框上的**确定(肯定)**按钮。其中参数text为按钮上显示的文本,listener为该按钮的单击事件监听器,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setNegativeButton(CharSequence text,DialogInterface.OnClickListener listener)
- 设定对话框上的**取消(否定)**按钮。其中参数text为按钮上显示的文本,listener为该按钮
的单击事件监听器,返回值为AlertDialog.Builder类的对象
AlertDialog.Builder setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)
- 设定对话框上的**忽略(中立)**按钮。其中参数text为按钮上显示的文本,listener为该按钮
的单击事件监听器,返回值为AlertDialog.Builder类的对象
AlertDialog create()
- 创建一个对话框,返回值为AlertDialog类的对象
AlertDialog show()
- 显示一个对话框,返回值为AlertDialog类的对象
3 设置不同按钮
步骤
- 创建构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- 设置属性
- 设置内容
builder.setMessage(String str)
- 设置基本Positive按钮与Negative按钮
- 创建并展示
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
- 第一个参数指定我们要显示的一组下拉单选框的数据集合
- 第二个参数代表索引,指定默认哪一个单选框被勾选上
- 第三个参数给每一个单选项绑定一个监听器
步骤
- 创建构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- 设置属性
- 设置单选按钮内容以及其点击事件
builder.setSingleChoiceItems()
- 设置基本Positive按钮与Negative按钮
- 创建并展示
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)
- 第一个参数指定我们要显示的一组下拉多选框的数据集合
- 第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如果希望指定哪一个多选选项框被选择, 需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,例如 {true, false, false, true}
- 第三个参数给每一个多选项绑定一个监听器
步骤:
- 创建构造器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- 设置属性
- 设置单选按钮内容以及其点击事件
builder.setMultiChoiceItems()
- 设置基本Positive按钮与Negative按钮
- 创建并展示
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(); } });}
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月03日 15时15分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
海思Hi3531DV100开发环境搭建
2021-05-08
Xilinx Zynq pl353-nand使用
2021-05-08
JavaScript上传下载文件
2021-05-08
QWaitCondition把异步调用封装成同步调用
2021-05-08
windows驱动开发-编译错误集合
2021-05-08
嵌入式linux系统应用开发
2021-05-08
Linux驱动开发之PCIe Host驱动
2021-05-08
Vue.js Element Basic组件使用
2021-05-08
android MVP模式
2021-05-08
基本vi命令使用
2021-05-08
android 头像选择,裁剪全套解决方案,你值得拥有!
2021-05-08
MapReduce
2021-05-08
springboot swagger2
2021-05-08
shell(十)case的几个典型应用
2021-05-08
Linux环境变量配置错误导致命令不能使用(杂谈)
2021-05-08
openstack安装(六)镜像glance服务安装
2021-05-08
openstack安装(九)网络服务的安装--控制节点
2021-05-08
shell编程(六)语言编码规范之(变量)
2021-05-08
linux杂谈之特殊字符的打印和在各种软件如何打出
2021-05-08