安卓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 ...
随机推荐
- 关于 try... catch
在逛论坛看见一个有意思的帖子,有点意思,记录下 关于"异常捕捉"(try catch)是否存在悖论? 一些我觉得有用的回复,放到下面了, 1. 当某些错误状况难以完全避免时,try ...
- HttpURLConnection使用分析
在项目中遇到各种版本的httpClient,所以想了解一下httpClient的实现 首先查看的是JDK1.1中自带的HttpURLConnection,看一下最初的设计是怎么样的 代码分析 使用Ht ...
- 案例分享:Qt国产麒麟系统某防“某显示控制项目”(多类设备自动化流程控制,数据分析整合与展示,定位图,深度图,热力图等,多应用协调管控,健壮容错)
喜报 我司承担的某防"某显示控制项目",已于近日顺利通过湖底验收. 需求 功能简介: 1.多类设备的显示.控制与管理 2.数据的分析与展示,定位图.深度图.热力图等 ...
- go值接收者和指针接收者的区别
方法的接收者 package main import ( "fmt" ) type Person struct { Name string Age int } func (p Pe ...
- 关于json序列化时报错json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
1.今天在写客户端与服务端交互的程序的时候,发现了一个问题 客户端代码 #客户端程序主要是发送注册请求/登录请求给服务端,服务端接收响应后回应对应的应答给客户端,客户端接收响应后,然后做一些操作 # ...
- matplotlib画图中x轴过于密集的解决办法
import matplotlib.ticker as ticker ax.xaxis.set_major_locator(ticker.MultipleLocator(base=10)) # tic ...
- Kotlin 函数 与 lambda 表达式
一.函数 代码块函数体: fun sum(x: Int, y: Int): Int { return x + y } 表达式函数体: fun sum(x: Int, y: Int) = x + y 使 ...
- 【Azure Cloud Services】云服务频繁发生服务器崩溃的排查方案
问题描述 云服务(Cloud Services)在使用期间,频繁发生崩溃事件,在崩溃期间,查看CPU负载为100%,而且同时伴随以下情况: 部署在云服务上的应用无法访问 远程连接云服务实例(RDP)访 ...
- 【Azure API 管理】Azure API Management在设置 Policy时,如何对URL进行解码呢? 使用 HttpUtility.UrlDecode 出错
问题描述 Azure API Management在设置 Policy时,如何对URL进行解码呢? 使用 HttpUtility.UrlDecode 出错,是否有其他可以对URL解码的方法呢? 使用H ...
- 如何实现十亿级离线 CSV 导入 Nebula Graph
本文首发于 Nebula Graph Community 公众号 本次实践是基于业务需求及后续扩展,通过技术选型确定了 Nebula Graph 图数据库,首先需要验证 Nebula Graph 数据 ...