安卓AlertDialog对话面板的使用---Android开发
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开发的更多相关文章
- 安卓学习进程(2)Android开发环境的搭建
本节将分为五个步骤来完成Android开发环境的部署. 第一步:安装JDK. 第二步:配置Windows上JDK的变量环境 . 第三步:下载安装Eclipse . 第四步:下载安装Androi ...
- html+css+js+Hbuilder开发一款安卓APP,根本不用学Android开发!
我们知道,要做一款安卓APP,咱们得先学安卓开发语言,例如java,前端后端.那么没有这些开发语言基础,咱们怎么做呢?其实现在有比较好的开发方案就是做webAPP,咱们可以用web前端知识构建安卓客户 ...
- Android开发:Android Studio开发环境配置
一.android studio下载: 1.Windows版: 下载地址:https://pan.baidu.com/s/1-sg4dN_2B5nn2YJf-C7XLQ 提取码:yedc 2.Mac版 ...
- 学Android开发的人可以去的几个网站
学Android开发的人可以去的几个网站 1.<IT蓝豹>Android开源项目分享平台国内非常好的一个Android开发者分享站,分享android所有特效,每天都有最新的Android ...
- 轻松搭建Unity3D 安卓Android开发环境
1,下载安装Java的JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html (JDK中,包含JRE) 如果是6 ...
- Win7下搭建安卓android开发环境
本文出自 “孤狼” 博客,请务必保留此出处http://332374363.blog.51cto.com/5262696/1310882 另外,在搭建android开发环境时,还参考了http://w ...
- Android开发之使用AlertDialog创建对话框,单选框和多选框
对话框: 对话框的icon,title,message等都可以不设置. 单选框和多选框与对话框勾选步骤基本上一致. 对话框的构建步骤: 1.使用AlertDialog类的内部类Builder类new ...
- Win7的64位系统如何搭建安卓Android开发环境
在搭建安卓Android开发环境,那么现在比较主流的Win7的64位操作系统如何搭建呢?其实很简单,不需要设置任何环境变量,只需要下载两个程序包(ADT和JDK),下载的时候注意选择相应的64位程序包 ...
- 49个你应该了解的Android Studio技巧、插件与资源 http://www.apkbus.com/blog-822721-72630.html (出处: 安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户)
49个你应该了解的Android Studio技巧.插件与资源http://www.apkbus.com/blog-822721-72630.html(出处: 安卓巴士 - 安卓开发 - Androi ...
- Android 开发之深入理解安卓调试桥各种错误解决办法
摘要: Android开发调试项目使用到安卓调试桥工具,Android Debug Bridge(ADB)位于sdk路径platform-tools文件夹,使用Android Studio或Eclip ...
随机推荐
- 解决idea中使用git fetch报远程仓库Authentication failed
这个问题是项目组同事在从git服务器clone代码后做fetch操作老是报错: Authentication failed, 弹出框提示:invalid user or password 其实问题出i ...
- 使用Java语言搭建一个简易的局域网直播(live)系统
演示一下 由于是局域网直播系统,那么最简单的情况应该也有两部分构成:录制直播和播放直播. 录制直播 录制直播使用的是本机的摄像头和麦克风,使用Java自带的JFrame窗口播放,支持音视频的录制.效果 ...
- pyhotn3.8 apt机器基础镜像构建
FROM python:3.8.10-slim RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/source ...
- 程序员应具备的PS基本技能(三):程序员使用PSD源文件切图
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- Kotlin return@xxx 的坑
Kotlin Return 到标签 先看例子: (1..5).forEach { if (it == 3) { return@forEach } println(it) } println(" ...
- 在矩池云使用Llama2-7B的方法
今天给大家分享如何在矩池云服务器使用 Llama2-7b模型. 硬件要求 矩池云已经配置好了 Llama 2 Web UI 环境,显存需要大于 8G,可以选择 A4000.P100.3090 以及更高 ...
- 手把手带你快速上手香橙派AIpro
本文分享自华为云社区<香橙派AIpro快速上手指南>,作者:昇腾CANN. 1 前言 作为业界首款基于昇腾深度研发的AI开发板,Orange Pi AIpro无论在外观上.性能上还是技术服 ...
- Android的BLE广播数据包解析---Android系列, 蓝牙技术(含BLE)
一.引言 理解和分析这个数据包结构(这里面也涉及广播间隔时间的设置,设备广播数据间隔设置长了,会影响设备被发现的效率:设置短时,又响应功耗). 我们所说的BLE设备,其实是有区分有两种角色 Centr ...
- welearn平台答案 大学英语 视听说 综合教程
打开页面 1. F12 2. ctrl+shift+c 3. 鼠标移动到选项位置 4. 带data-solution的就是答案
- ble的notification和indication的区别和联系
Ble服务端传输消息有两个常用手段,notification和indication.那么这两者之间有什么区别呢? Notification 不需要应答,所以服务端发送的消息,它自己并不知道消息是否发送 ...