Dialog的用法

来源:互联网 发布:linux查看登录密码 编辑:程序博客网 时间:2024/09/21 09:29

特点:

不会自动消失,除非点击返回值或者关闭按钮

分类:

1.ProgressDialog 进度对话框
2.AlertDialog 提示对话框
3.TimePickerDialog/DatePickerDialog 时间/日期设置对话框

(1)TimePickerDialog的使用:

//获取Dialog对象            /*             * 参数1: Context对象,             * 2: onTimeSetListener,当设置完时间确认后会调用此接口中的方法             * 3:设置对话框初始显示时的小时数             * 4:设置对话框初始显示时的分钟数             * 5:是否以24小时制显示             */            TimePickerDialog td = new TimePickerDialog(this, new OnTimeSetListener() {                /*                 * 参数1:用于设置时间的两个滚轮                 * 参数2,3:确认设置的小时数和分钟数                 *                  */                @Override                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {                    // TODO Auto-generated method stub                    Toast.makeText(MainActivity.this, hourOfDay+" : "+minute, Toast.LENGTH_SHORT).show();                }            }, 10, 19, true);            //调用show方法展示            td.show();

DatePickerDialog的使用:

//获取对象            /*             * 1: Context。             * 2. onDateSetListener ,一旦日期设置完成后会调用此接口中的方法             * 3,4,5:对话框初始显示时的年月日             * 注意:月份小1个              */            new DatePickerDialog(this, new OnDateSetListener() {                //参数用于代表设置后的年月日                @Override                public void onDateSet(DatePicker view, int year, int monthOfYear,                        int dayOfMonth) {                    // TODO Auto-generated method stub                    Toast.makeText(MainActivity.this, year+" / "+(monthOfYear+1)+" / "+dayOfMonth, Toast.LENGTH_SHORT).show();                }            }, 2016, 11, 19)            .show(); //通过show方法显示

AlertDialog的基本显示:

//初始化对象            new AlertDialog.Builder(this)            .setIcon(R.drawable.ic_launcher)  //设置图标            .setTitle("标题文本")             .setMessage("提示信息文本")            //添加按钮,参数用于设置按钮上的文字以及按钮的点击事件            //注意:如果点击按钮后只是负责关闭对话框,不干其他事情,点击事件可填null            .setNeutralButton("忽略", null)            .setNegativeButton("取消", null)            .setPositiveButton("确定", new OnClickListener() {                //参数1:代表当前显示的对话框对象                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    Toast.makeText(MainActivity.this, "确定按钮被点击了!!!", Toast.LENGTH_SHORT).show();                }            })            .setCancelable(false)  //设置只能通过点击对话框中的按钮关闭对话框            .show();  //显示

AlertDialog中更多的种类:

1. 列表对话框 :

//实现列表对话框的关键:setItems方法            new AlertDialog.Builder(this)            .setIcon(R.drawable.ic_launcher)            .setTitle("普通列表对话框")            /*             * 通过setItems方法实现,             * 参数1: 数组,用于设置列表中要显示的数据源             * 参数2:设置列表中每一个条目的点击事件             */            .setItems(strs, new OnClickListener() {                /**                 * 当对话框中显示一个列表时,参数二which有意义                 * which: 用于代表被点的item在列表中所处的position位置                 */                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    Toast.makeText(MainActivity.this, "列表中选中的数据为:"+strs[which], Toast.LENGTH_SHORT).show();                }            })            .show();

2. 单选列表对话框 :

singleStr = "abc";            new AlertDialog.Builder(this)            .setTitle("单选列表")            /*             * 设置单选列表             * 参数1:列表中显示的数据源             * 参数2: 设置默认选中项在列表中所处的位置             * 3:列表的item的点击事件             *              */            .setSingleChoiceItems(strs, 0, new OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    singleStr = strs[which];//                  Toast.makeText(MainActivity.this, "单选列表的选择结果为:"+strs[which], Toast.LENGTH_SHORT).show();                    //关闭对话框//                  dialog.cancel();                    //或者//                  dialog.dismiss();                }            } )            .setPositiveButton("ok", new OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    Toast.makeText(MainActivity.this, "单选列表的选择结果为::::"+singleStr+"  "+which, Toast.LENGTH_SHORT).show();                }            })            .show();

3. 多选列表对话框 :

list.clear();            list.add(strs[1]);            list.add(strs[3]);            new AlertDialog.Builder(this)            .setTitle("多选列表")            /**             * 1.   要显示的数据源,数据源可设置数组对象或者values中的数组资源对应的id             * 2.  boolean类型数组,用于给数据源中的每一个数据设置选中状态             */            .setMultiChoiceItems(strs, new boolean[]{false,true,false,true}, new OnMultiChoiceClickListener() {                //当列表中的item被点击时运行此方法                //which代表被点击的item在列表中对应的位置,参数3:该item在被点击之后的选中状态                @Override                public void onClick(DialogInterface dialog, int which, boolean isChecked) {                    // TODO Auto-generated method stub                    Log.i("oye", which+"  "+isChecked);                    if (isChecked) {                        list.add(strs[which]);                    } else {                        list.remove(strs[which]);                    }                }            } )            .setPositiveButton("ok", new OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    Toast.makeText(MainActivity.this, "多选结果为:"+list.toString(), Toast.LENGTH_SHORT).show();                }            })            .show();

4. 自定义显示内容的对话框 :

View view  = LayoutInflater.from(this).inflate(R.layout.custom, null);            final EditText et = (EditText) view.findViewById(R.id.et);            //自定义显示内容            new AlertDialog.Builder(this)            .setTitle("自定义显示内容")            /*             * 通过setView方法中的view参数设置对话框的自定义显示内容*/            .setView(view)            .setPositiveButton("ok", new OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    Toast.makeText(MainActivity.this, et.getText().toString(), Toast.LENGTH_SHORT).show();                }            })            .show();

备注:对话框不能够自定义显示位置,位置始终固定显示在屏幕的居中位置

0 0
原创粉丝点击