Android中的对话框
来源:互联网 发布:诗词翻译赏析软件 编辑:程序博客网 时间:2024/05/21 11:31
前言
Android 开发中是百分之一万会用到对话框的,对话框是一种有效的与用户进行信息交互的手段,对话框的种类也很多,这里介绍四种常用的对话框 —— 普通对话框(确定取消对话框)、单选对话框、多选对话框、进度条对话框。
其中前三种的创建方式大同小异,用的是同一个类AlertDialog,但是不能直接new,因为这个类的构造方法是Protected,也就是说只有同一个包下或者子类才能去new,但google这样设计是有道理的,因为google为了方便程序猿更有效统一的创建对话框,给我们提供了一套创建对话框的机制;进度条对话框使用的是ProgressDialog类,可以直接去new。
先来看一下界面(不要在意丑的细节)
1.确定取消对话框
//点击按钮创建对话框public void click(View view) { //创建对话框构建器对象,类似工厂模式 AlertDialog.Builder builder = new AlertDialog.Builder(this); //设置图标(可选) builder.setIcon(android.R.drawable.ic_dialog_alert); //设置标题(可选) builder.setTitle("警告"); 设置内容(可选) builder.setMessage("这是一个警告信息,您确定要退出吗"); //设定确定按钮 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"确定按钮点击",Toast.LENGTH_SHORT).show(); } }); //设定取消按钮 builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,"取消按钮点击",Toast.LENGTH_SHORT).show(); } }); //使用构建器创建出对话框对象 AlertDialog dialog = builder.create(); //显示对话框,不执行这句话对话框是不会显示的.... dialog.show(); //可以用下面的方式代替上面的两行 //builder.show(); }
点击确定取消对话框按钮,运行结果:
2.单选对话框
public void singleClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(android.R.drawable.ic_dialog_info); builder.setTitle("请选择您的性别"); //一定不能setMessage,否则该内容会覆盖单选对话框选项 //builder.setMessage("这是一个单选对话框信息"); //要展示的单选选项的字符序列数组 final String[] items = new String[] { "男", "女", "女博士" }; //设置单选选项 //arg1 要展示的选项的文本 //arg2 表示默认已选中的item, -1表示没有默认被选中的选项 builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { //arg1: dialog是触发此方法执行的对话框 //arg2: which哪一个item被选中 @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this,items[which],Toast.LENGTH_SHORT).show(); //单选结束让对话框消失 dialog.dismiss(); } }); //显示对话框 builder.show(); }
点击单选对话框,运行结果:
注意:
如果设置了builder.setMessage(“这是一个单选对话框信息”);则会覆盖单选选项(多选也是),如图:
3.多选对话框
public void multiClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(android.R.drawable.ic_dialog_info); builder.setTitle("请选择您的爱好"); //要展示的多选选项的字符序列数组 final String[] items = new String[] { "吃", "喝", "玩", "乐" }; //默认已选中的哪些item final boolean[] checkedItems = new boolean[] { true, false, true, false }; //设置多选选项,任何选项被选中都会被执行 builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { //记录用户的选择 checkedItems[which] = isChecked; } }); //多选完成后,点击确定来让对话框消失 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //拼接选中的选项 String text = ""; for (int i=0; i<checkedItems.length; i++) { text += checkedItems[i]? items[i] + " " : ""; } Toast.makeText(MainActivity.this,text + "被选中", Toast.LENGTH_SHORT).show(); } }); //显示对话框 builder.show(); }
点击多选对话框按钮,运行结果:
4.进度条对话框
public void progressClick(View view) { //创建进度条对话框 final ProgressDialog dialog = new ProgressDialog(this); dialog.setIcon(android.R.drawable.ic_dialog_info); dialog.setTitle("正在加载 请稍后 ..."); //设置为水平进度条,默认是圈圈进度条 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置进度最大值 dialog.setMax(100); //模拟加载过程 new Thread(new Runnable() { @Override public void run() { for (int i=0; i<100; i++) { //设置当前进度 dialog.setProgress(i); try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } } //加载完成后,进度条消失 dialog.dismiss(); } }).start(); //显示对话框 dialog.show(); }
点击进度条对话框,运行结果:
补充:
可以使用 setCancelable(false)方法,来设置当点击返回键或者屏幕空白区域的时候,对话框不消失。
0 0
- android中的对话框:自定义对话框
- Android中的对话框AlertDialog
- android中的常见对话框
- 浅谈android中的对话框
- Android项目中的对话框
- android中的对话框
- Android中的对话框
- Android中的diglog对话框
- Android中的对话框
- Android中的Dialog对话框
- android中的对话框
- Android中的悬浮对话框和即点即关对话框
- android中的对话框之三:自定义对话框
- Android 对话框中的进度条 ProgressDialog
- Android 对话框中的进度条 ProgressDialog
- Android 对话框中的进度条 (ProgressDialog)
- Android 对话框中的进度条 ProgressDialog
- Android 中的对话框实现方式
- UFLDL 笔记 01 神经网络
- Linux 软件包管理工具 Snapcraft
- Android的SDK更新问题
- iOS中UIWebView的使用详解
- sizeof 是一个关键字
- Android中的对话框
- Hadoop家族环境搭建各种版本选择
- HBase单机安装
- 45.leetcode题目:144. Binary Tree Preorder Traversal
- android屏幕尺寸信息
- 博弈论之取石子游戏的学习
- 如何做一个合格的游戏程序员
- 修改mysql数据库密码的方法
- Maven入门系列(二)--设置中央仓库的方法