1、普通对话框:
给出提示信息,有yes、no两个按钮。
1 AlertDialog dialog=new AlertDialog.Builder(this) //this代表当前Activity对象,表示此对话框属于当前Activity对象。也可用 类名.this 指定为其它的Activity对象 2 .setPositiveButton("确定",null) //要加的按钮必须放在create()之前 3 .setNegativeButton("取消",null) //第一个参数是按钮上的文本,第二个是监听器OnClickListener,可设置为null,点击时退出对话框 4 .setTitle("提示") //标题 5 .setMessage("是否退出?") //提示信息 6 .setIcon(R.drawable.a) //图标,只能是R.xxx.yyy的形式 7 .create(); //不用create(),直接show()也行 8 9 //标题、提示信息、图标也可以后面再设置 10 //dialog.setTitle("提示"); 11 //dialog.setMessage("是否退出"); 12 //dialog.setIcon(R.drawable.a); 13 14 dialog.show(); //显示对话框 15 //dialog.hide(); //隐藏对话框
所有对话框都有 setTitle()、setMessage()、setIcon()、show()、hide()的方法。
其中 setTitle()、setMessage()、setIcon()既可以在create()之前使用,也可以在create()创建对话框后再使用。
2、单选对话框
1 AlertDialog dialog=new AlertDialog.Builder(this) 2 .setTitle("请选择性别") 3 .setIcon(R.drawable.a) 4 ////设置一组单选按钮,第一个参数是String数组,第二参数设置默认选中的项(数组下标),第三个参数单选按钮的监听器 5 .setSingleChoiceItems(new String[]{"男","女"},0,null) 6 .show(); //不用create(),直接show()也行
3、多选对话框
1 AlertDialog dialog=new AlertDialog.Builder(this) 2 .setTitle("请选择爱好") 3 .setIcon(R.drawable.a) 4 //设置一组多选按钮,第一个参数是String数组,第二参数boolean数组,true表示该项默认选中,第三个参数是监听器 5 .setMultiChoiceItems(new String[]{"读书","运动","旅游"},new boolean[]{true,true,false},null) 6 .show();
以上三种对话框中用到的事件监听:
1 new DialogInterface.OnClickListener() { 2 @Override 3 public void onClick(DialogInterface dialogInterface, int i) { 4 //i代表当前按钮的编号 5 } 6 }
普通对话框中,这个事件监听是某个按钮的事件监听。
单选/多线对话框中,这个事件监听是每个选项的事件监听,即点击一个选项,就会触发事件一次。
普通对话框、单选对话框、多选对话框都是AlertDialog。进度条对话框是ProgressDialog。
4、进度条对话框
当程序在进行耗时的操作时(比如下载文件),可以用进度条对话框来显示进度。
进度条有2种样式:
水平进度条 圆形进度条(圆圈会一直转动)
1 ProgressDialog dialog=new ProgressDialog(this); //注意用法有点不同,没有Builder() 2 dialog.setTitle("下载进度"); //注意ProgressDialog的方法都只能单独写,不能在创建ProgressDialog对象时写在后面 3 dialog.setIcon(R.drawable.a); 4 dialog.setMessage("正在下载请稍后"); //文本可用setMessage()动态修改,显示当前的具体操作 5 dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置进度条样式 6 dialog.show();
5、消息对话框
消息对话框(Toast)是轻量级消息提醒机制,用于向用户显示即时消息。
Toast对话框显示在程序界面的最上层(最前面),显示一段时间后自动消失,不会打断当前操作,也不会获取焦点,只起到提示作用。
1 //makeText()是Toast类的静态方法。 2 //第一个参数指定消息对话框所属的Activity,可用Activity类名.this指定其他的,第二个参数指定提示文本,第三个参数是Toast类的预定义常量,指定显示时间的长短。 3 //要调用show()才会显示。 4 Toast.makeText(this,"电量不足10%!",Toast.LENGTH_LONG).show();