1  AlertDialog.Builder builder=new AlertDialog.Builder(this);
2 builder.setTitle("历史记录").setIcon(R.mipmap.info).setMessage(str)
3 .setPositiveButton("ok", new DialogInterface.OnClickListener() {
4 @Override
5 public void onClick(DialogInterface dialog, int which) {
6 }
7 });
8 AlertDialog ad=builder.create();
9 ad.show();


上面这段代码显示的结果如图所示。

简单记录一下AlertDialog的用法:

下面的内容整理自:https://blog.csdn.net/streate/article/details/90899515


1.普通提示对话框

其上主要是提示标题,消息主体,底部“取消”、“确定”等按钮。

 1 /**
2 * 提示对话框
3 */
4 public void tipDialog() {
5 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
6 builder.setTitle("提示:");
7 builder.setMessage("这是一个普通对话框,");
8 builder.setIcon(R.mipmap.ic_launcher);
9 builder.setCancelable(true); //点击对话框以外的区域是否让对话框消失
10
11 //设置正面按钮
12 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
13 @Override
14 public void onClick(DialogInterface dialog, int which) {
15 Toast.makeText(MainActivity.this, "你点击了确定", Toast.LENGTH_SHORT).show();
16 dialog.dismiss();
17 }
18 });
19 //设置反面按钮
20 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
21 @Override
22 public void onClick(DialogInterface dialog, int which) {
23 Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
24 dialog.dismiss();
25 }
26 });
27 //设置中立按钮
28 builder.setNeutralButton("保密", new DialogInterface.OnClickListener() {
29 @Override
30 public void onClick(DialogInterface dialog, int which) {
31 Toast.makeText(MainActivity.this, "你选择了中立", Toast.LENGTH_SHORT).show();
32 dialog.dismiss();
33 }
34 });
35
36
37 AlertDialog dialog = builder.create(); //创建AlertDialog对象
38 //对话框显示的监听事件
39 dialog.setOnShowListener(new DialogInterface.OnShowListener() {
40 @Override
41 public void onShow(DialogInterface dialog) {
42 Log.e(TAG, "对话框显示了");
43 }
44 });
45 //对话框消失的监听事件
46 dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
47 @Override
48 public void onCancel(DialogInterface dialog) {
49 Log.e(TAG, "对话框消失了");
50 }
51 });
52 dialog.show(); //显示对话框
53 }

使用到的方法

- setTitle:设置对话框的标题,比如“提示”、“警告”等; 
- setMessage:设置对话框要传达的具体信息; 
- setIcon: 设置对话框的图标; 
- setCancelable: 点击对话框以外的区域是否让对话框消失,默认为true; 
- setPositiveButton:设置正面按钮,表示“积极”、“确认”的意思,第一个参数为按钮上显示的文字,下同; 
- setNegativeButton:设置反面按钮,表示“消极”、“否认”、“取消”的意思; 
- setNeutralButton:设置中立按钮; 
- setOnShowListener:对话框显示时触发的事件; 
- setOnCancelListener:对话框消失时触发的事件。

2.普通列表对话框

列表对话框的内容就是一列显示内容,

需要用到构造器的setItems方法,

参数一是列表数据,参数二是点击监听接口,

我们要实现这样一个小功能,用户在点击某一项时弹出一个Toast提示选中项的内容。

 1 /**
2 * 列表对话框
3 */
4 private void itemListDialog() {
5 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
6 builder.setTitle("选择你喜欢的课程:");
7 builder.setCancelable(true);
8 final String[] lesson = new String[]{"语文", "数学", "英语", "化学", "生物", "物理", "体育"};
9 builder.setIcon(R.mipmap.ic_launcher);
10 builder.setIcon(R.mipmap.tab_better_pressed)
11 .setItems(lesson, new DialogInterface.OnClickListener() {
12 @Override
13 public void onClick(DialogInterface dialog, int which) {
14 Toast.makeText(getApplicationContext(), "你选择了" + lesson[which], Toast.LENGTH_SHORT).show();
15 }
16 }).create();
17 //设置正面按钮
18 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
19 @Override
20 public void onClick(DialogInterface dialog, int which) {
21 dialog.dismiss();
22 }
23 });
24 //设置反面按钮
25 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
26 @Override
27 public void onClick(DialogInterface dialog, int which) {
28 dialog.dismiss();
29 }
30 });
31 AlertDialog dialog = builder.create(); //创建AlertDialog对象
32 dialog.show(); //显示对话框
33 }

3.单选对话框

单选对话框的内容就是一个单项选择列表,

需要用到setSingleChoiceItems方法,参数一是列表数据,

参数二是默认选中的item,参数三则是点击监听接口,

我们要实现这样一个小功能,用户在选好某一项之后记下其选择,

下次点开对话框时就默认选中该项。

 1 /**
2 * 单选对话框
3 */
4 public void singleChoiceDialog() {
5 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
6
7 builder.setTitle("你现在居住地是:");
8 final String[] cities = {"北京", "上海", "广州", "深圳", "杭州", "天津", "成都"};
9
10 builder.setSingleChoiceItems(cities, chedkedItem, new DialogInterface.OnClickListener() {
11 @Override
12 public void onClick(DialogInterface dialog, int which) {
13 Toast.makeText(getApplicationContext(), "你选择了" + cities[which], Toast.LENGTH_SHORT).show();
14 chedkedItem = which;
15 }
16 });
17 builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
18 @Override
19 public void onClick(DialogInterface dialog, int which) {
20 dialog.dismiss();
21 }
22 });
23
24 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
25 @Override
26 public void onClick(DialogInterface dialog, int which) {
27 dialog.dismiss();
28 }
29 });
30
31 AlertDialog dialog = builder.create(); //创建AlertDialog对象
32 dialog.show(); //显示对话框
33 }

4.复选对话框

复选对话框是一个可以重复选中的列表,与单选对话框有点像,

不过调用的是setMultiChoiceItems方法,而且多了一个布尔值参数isChecked,

表示当前点击的item是否被选中。

我们创建一个集合,将点击选中的item添加到集合中,

取消勾选的话就从集合中移除,点击确认按钮后就将选中内容显示出来。

 1 /**
2 * 复选对话框
3 */
4 public void multiChoiceDialog() {
5 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
6 builder.setTitle("请选择你喜欢的颜色:");
7 final String[] colors = {"红色", "橙色", "黄色", "绿色", "蓝色", "靛色", "紫色"};
8 final List<String> myColors = new ArrayList<>();
9
10 builder.setMultiChoiceItems(colors, null, new DialogInterface.OnMultiChoiceClickListener() {
11 @Override
12 public void onClick(DialogInterface dialog, int which, boolean isChecked) {
13 if (isChecked) {
14 myColors.add(colors[which]);
15 } else {
16 myColors.remove(colors[which]);
17 }
18 }
19 });
20
21 builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
22 @Override
23 public void onClick(DialogInterface dialog, int which) {
24 String result = "";
25 for (String color : myColors) {
26 result += color + "、";
27 }
28 Toast.makeText(getApplicationContext(), "你选择了: " + result, Toast.LENGTH_SHORT).show();
29 dialog.dismiss();
30 }
31 });
32
33 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
34 @Override
35 public void onClick(DialogInterface dialog, int which) {
36 myColors.clear();
37 dialog.dismiss();
38 }
39 });
40 AlertDialog dialog = builder.create(); //创建AlertDialog对象
41 dialog.show(); //显示对话框
42 }

安卓AlertDialog对话面板的使用---Android开发的更多相关文章

  1. 安卓学习进程(2)Android开发环境的搭建

        本节将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步:下载安装Eclipse . 第四步:下载安装Androi ...

  2. html+css+js+Hbuilder开发一款安卓APP,根本不用学Android开发!

    我们知道,要做一款安卓APP,咱们得先学安卓开发语言,例如java,前端后端.那么没有这些开发语言基础,咱们怎么做呢?其实现在有比较好的开发方案就是做webAPP,咱们可以用web前端知识构建安卓客户 ...

  3. Android开发:Android Studio开发环境配置

    一.android studio下载: 1.Windows版: 下载地址:https://pan.baidu.com/s/1-sg4dN_2B5nn2YJf-C7XLQ 提取码:yedc 2.Mac版 ...

  4. 学Android开发的人可以去的几个网站

    学Android开发的人可以去的几个网站 1.<IT蓝豹>Android开源项目分享平台国内非常好的一个Android开发者分享站,分享android所有特效,每天都有最新的Android ...

  5. 轻松搭建Unity3D 安卓Android开发环境

    1,下载安装Java的JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html (JDK中,包含JRE) 如果是6 ...

  6. Win7下搭建安卓android开发环境

    本文出自 “孤狼” 博客,请务必保留此出处http://332374363.blog.51cto.com/5262696/1310882 另外,在搭建android开发环境时,还参考了http://w ...

  7. Android开发之使用AlertDialog创建对话框,单选框和多选框

    对话框: 对话框的icon,title,message等都可以不设置. 单选框和多选框与对话框勾选步骤基本上一致. 对话框的构建步骤: 1.使用AlertDialog类的内部类Builder类new ...

  8. Win7的64位系统如何搭建安卓Android开发环境

    在搭建安卓Android开发环境,那么现在比较主流的Win7的64位操作系统如何搭建呢?其实很简单,不需要设置任何环境变量,只需要下载两个程序包(ADT和JDK),下载的时候注意选择相应的64位程序包 ...

  9. 49个你应该了解的Android Studio技巧、插件与资源 http://www.apkbus.com/blog-822721-72630.html (出处: 安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户)

    49个你应该了解的Android Studio技巧.插件与资源http://www.apkbus.com/blog-822721-72630.html(出处: 安卓巴士 - 安卓开发 - Androi ...

  10. Android 开发之深入理解安卓调试桥各种错误解决办法

    摘要: Android开发调试项目使用到安卓调试桥工具,Android Debug Bridge(ADB)位于sdk路径platform-tools文件夹,使用Android Studio或Eclip ...

随机推荐

  1. win32 - Direct3D 11的demo创建

    我们可以使用D3D为游戏,科学和桌面应用程序创建3-D图形. 非官方demo实例: https://github.com/Ray1024/D3D11Tutorial 当然,我们第一步要开始认识里面的基 ...

  2. socket及黏包现象及解决黏包---day28

    1.四次挥手(补充) 客户端向服务端发送一个请求消息,断开连接(代表客户端没有数据传输了) 服务端接收请求,发出响应 等到服务端所有数据收发完毕之后 服务端向客户端发送断开连接的请求 客户端接收请求后 ...

  3. 数据分析day01

    数据分析三剑客 numpy pandas(重点) matplotlib numpy模块 NumPy(Numerical Python)是Python语言中做科学计算的基础库.重在于数值计算,也是大部分 ...

  4. 在Directory.Build.props中用全局变量来管理包的版本号

    1.顶级目录下放置Directory.Build.props文件 为每个软件产品,分配一块独立的windows盘符,在根目录下放置名为Directory.Build.props的文件即可.这个文件名是 ...

  5. [App Service for Windows]通过 KUDU 查看 Tomcat 配置信息

    问题描述 在App Service 中选择了Java Tomcat后,如何查看Azure App Service的Tomcat的配置信息呢? 问题解答 可以通过以下的 3个步骤查看: 第一步:登录 K ...

  6. 详解SSL证书系列(4)免费的SSL证书和收费的证书有什么区别

    上一篇介绍了如何选择SSL证书,更多地是从证书类型角度介绍的.SSL证书有免费和收费的,那么它们之间有什么区别呢? SSL证书免费和收费的主要区别体现在以下几个方面: 1,验证类型 免费SSL证书通常 ...

  7. C程序分别实现下列字符阵列的输出

    C程序分别实现下列字符阵列的输出:(https://zhuanlan.zhihu.com/p/443989560    可以参考这个博主写的) 1,左下三角形(代码) 1 #include <s ...

  8. 一: Mysql字符集问题

    ## Mysql 字符集问题 1 修改MySQL5.7字符集 1.1 修改步骤 在MySQL 8.0版本之前,默认字符集为 latin1 ,utf8字符集指向的是 utf8mb3 .网站开发人员在数据 ...

  9. Java 小案例+super使用

    1 package com.bytezero.supertest3; 2 3 /** 4 * 5 * @Description AccountTest类 6 * @author Bytezero·zh ...

  10. C++ //list容器 构造函数 //list赋值和交换 //list容器大小操作 //list插入和删除,移除 //清空 //list数据存取back(); front() //list 反转和排序

    1 //list容器 构造函数 //list赋值和交换 //list容器大小操作 2 //list插入和删除,移除 //清空 //list数据存取back(); front() 3 //list 反转 ...