Android学习笔记二十八之AlertDialog提示对话框和几个常用的提示框
2017-09-04 10:27
555 查看
Android学习笔记二十八之AlertDialog提示对话框和ProgressDialog进度条提示框
在我们实际开发中,常常需要有对话框弹出跟用户交互。AndroidOS提供有多种对话框,这一节,我们介绍一下AlertDialog和几个常用Dialog,AlertDialog是ProgressDialog的父类,构造器是protected的,所以不能直接new出来这个对象,需要用到AlertDialog.Builder中的create()方法。下面介绍一下创建AlertDialog需要了解的几个方法:setTitle:为对话框设置标题
setIcon :为对话框设置图标
setMessage:为对话框设置内容
setView : 给对话框设置自定义样式
setItems :设置对话框要显示的一个list,一般用于显示几个命令时
setMultiChoiceItems :用来设置对话框显示一系列的复选框
setSingleChoiceItems:用来设置对话框的单选列表
setNeutralButton :普通按钮
setPositiveButton :给对话框添加”Yes”按钮
setNegativeButton :对话框添加”No”按钮
create : 创建对话框,必须要调用
show :显示对话框,必须要调用
下面我们通过例子体会AlertDialog的几种常用情况:
第一种、普通的对话框
创建一个普通的对话框,比如给用户选择是否退出程序等的时候,例子代码如下:AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setTitle("提示"); builder.setMessage("你是否要退出应用?"); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { ToastUtils.showToast(AlertDialogActivity.this, "你点击了取消按钮"); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { ToastUtils.showToast(AlertDialogActivity.this, "你点击了确定按钮"); } }); builder.create().show();
第二种、带列表的普通对话框
例子代码如下:final String[] cars = {"宝马", "奔驰", "马自达", "卡罗拉", "本田", "丰田", "长安", "红旗"}; final AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setTitle("选择你喜欢的车"); builder.setItems(cars, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { ToastUtils.showToast(AlertDialogActivity.this, "你选了:" + cars[i]); } }); builder.create().show();
第三种、带单选列表的对话框
例子代码如下:final String[] language = {"Java语言", "PHP语言", "Android语言", "IOS语言", "C++语言", "C#语言"}; final String[] select = {""}; AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setTitle("选择你喜欢的语言,只能选一项"); builder.setSingleChoiceItems(language, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { select[0] = language[i]; } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { ToastUtils.showToast(AlertDialogActivity.this, "你选了:" + select[0]); } }); builder.create().show();
第四种、带多选列表的对话框
例子代码如下:final String[] menu = {"丝瓜面筋", "糖醋鲤鱼", "糖醋排骨", "剁椒鱼头", "清蒸咸鱼", "鱼香肉丝", "清炒上海青", "麻婆豆腐"}; final boolean[] isCheck = {false, false, false, false, false, false, false, false}; AlertDialog.Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setTitle("请选择你的想要的菜"); builder.setMultiChoiceItems(menu, isCheck, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i, boolean b) { isCheck[i] = b; } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { String select = ""; for (int j = 0; j < isCheck.length; j++) { if (isCheck[j]) { select += menu[j]; } } ToastUtils.showToast(AlertDialogActivity.this, "你选择的菜有:" + select); } }); builder.create(); builder.show();
最后实现效果如下:
这里只是简单的实现,先是new一个AlertDialog.Builder,然后设置一些相应的内容,最后调用create方法创建,调用show方法显示出来。对于AlertDialog的介绍就到这里了,也可以自定义AlertDialog,这个留到后面讲自定义控件的时候再细讲。下面我们介绍一下ProgressDialog。
ProgressDialog进度提示框
AndroidOS提供给我们创建进度条对话框有两种方式,一种是直接new,另外一种是调用静态方法show。下面,我们通过例子体会一下ProgressDialog。
创建一个圆形进度条
//通过show方法创建一个进度条对话框 ProgressDialog.show(ProgressDialogActivity.this, "通讯中", "正在通讯,请稍候...", false, true);
创建一个长方形进度条
//通过new方法创建一个对话框 progressDialog = new ProgressDialog(ProgressDialogActivity.this); //设置进度条的最大值 progressDialog.setMax(maxProgress); //设置标题 progressDialog.setTitle("正在下载"); //设置提示信息内容 progressDialog.setMessage("安装包正在下载,马上就好..."); //设置是否允许点击进度条对话框外面取消对话框 progressDialog.setCancelable(false); //设置进度条的样式,这个为长方形 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置是否显示进度,false显示 progressDialog.setIndeterminate(false); //将进度条对话框show出来 progressDialog.show(); //新建一个线程更新进度 new Thread(new Runnable() { @Override public void run() { while (progress < maxProgress) { //模拟耗时方法 sleep(); progress += 2; handler.sendEmptyMessage(111); } } }).start();
效果图:
这样可以实现一个ProgressDialog进度条对话框,在这里知识简单实现,我们也可以按照需求自定义进度条对话框。
DatePickerDialog日期选择提示框
这个和TimePickerDiaog都比较简单,直接放代码示例,就不在解析了,代码如下:Calendar calendar = Calendar.getInstance(); //第一个参数是上下文对象,第二个是监听器,第三个是设置当前年份,第四个是设置月份,第五个是设置当前日份 new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { String result = "你选择的是:" + i + "年" + (i1 + 1) + "月" + i2 + "日"; ToastUtils.showToast(MainActivity.this, result); } }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show();
TimePickerDialog时间选择提示框
Calendar calendar = Calendar.getInstance(); //第一个参数是上下文对象,第二个是监听器,第三个是设置当前小时数,第四个是分钟数,第五个是是否显示24小时制 new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int i, int i1) { String result = "你选择的是:" + i + "时" + i1 + "分"; ToastUtils.showToast(MainActivity.this, result); } }, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show();
最后实现效果图:
最后附上国内镜像API
AlertDialog对话框
ProgressDialog进度条对话框
DatePickerDialog日期选择提示框
TimePickerDialog时间选择提示框
猛戳下载Demo源码
相关文章推荐
- Android学习笔记二十八之AlertDialog提示对话框和几个常用的提示框
- AlertDialog 提示框 | ProgressDialog 进度对话框
- Android 常用dialog提示对话框
- JavaScript 几个常用的弹出对话框提示案例
- jquery仿alert提示框、confirm确认对话框、prompt带输入的提示框插件[附实例演示]
- Android学习笔记常见对话框AlertDialog
- AlertDialog提示对话框练习
- AlertDialog.Builder提示对话框
- android基础学习(6)-------AlertDialog.Builder提示对话框
- 实现点击AlertDialog上按钮时不关闭对话框
- Android apiDemo 学习——对话框AlertDialogSamples
- [原]Android用户界面对话框之警告对话框(ALertDialog)
- Android学习笔记——AlertDialogbuilder和AlertDialog
- 弹出对话框AlertDialog.Builder
- 写了个日常开发常用的对话框(模拟alert,confirm....)
- Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)
- 安卓使用 AlertDialog.Builder创建单选列表对话框
- Android:AlertDialog.Builder创建常见对话框
- Android控件之AlertDialog-信息提示框
- android_炫酷的提示框 SweetAlertDialog