Android中常用对话框、弹出框、Dialog的使用

目录

1.AlertDialog - 简单对话框

2.AlertDialog - 列表对话框

3.单选列表对话框

4.AlertDialog - 多选列表对话框

5.AlertDialog - 半自定义对话框

6.AlertDialog - 全自定义对话框

7.ProgressDialog - 圆形进度条对话框 

8.ProgressDialog - 条形进度条对话框  

9.DatePickerDialog - 日期选择弹出框

10.TimePickerDialog - 时间选择弹出框


1.AlertDialog - 简单对话框

//简单对话框
        AlertDialog alertDialog=new AlertDialog.Builder(context)
                .setIcon(R.drawable.~)
                .setTitle("标题")
                .setMessage("信息")
                .setNegativeButton("阴性按钮(左)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .setPositiveButton("阳性按钮(右)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .create();
        alertDialog.show();

2.AlertDialog - 列表对话框

注意 .setItems(列表项,监听器)

//列表对话框
        String items[]=new String[]{"item1","item2","...."};
        AlertDialog alertDialog=new AlertDialog.Builder(context)
                .setIcon(R.drawable.~)
                .setTitle("标题")
                .setItems(items, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //   i 表示点击的指针,可使用 items[i]
                    }
                })
                .setNegativeButton("阴性按钮(左)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .setPositiveButton("阳性按钮(右)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .create();
        
        alertDialog.show();

3.单选列表对话框

注意 .setSingleChoiceItems(列表项,选中的列表项的指针,监听器)

//单选列表对话框
        String items[]=new String[]{"item1","item2","...."};
        AlertDialog alertDialog=new AlertDialog.Builder(context)
                .setIcon(R.drawable.~)
                .setTitle("标题")
                .setSingleChoiceItems(items,0, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //   i 表示点击的指针,可使用 items[i]
                    }
                })
                .setNegativeButton("阴性按钮(左)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .setPositiveButton("阳性按钮(右)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .create();
        alertDialog.show();

4.AlertDialog - 多选列表对话框

注意 .setSingleChoiceItems(列表项,列表项是否选中的数组,监听器)

//多选列表对话框
        String items[]=new String[]{"item1","item2","...."};
        AlertDialog alertDialog=new AlertDialog.Builder(context)
                .setIcon(R.drawable.~)
                .setTitle("标题")
                .setMultiChoiceItems(items, new boolean[]{false, false, ... }, new DialogInterface.OnMultiChoiceClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                        //   i 表示点击的指针,可使用 items[i] 
                    }
                })
                .setNegativeButton("阴性按钮(左)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .setPositiveButton("阳性按钮(右)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .create();
        alertDialog.show();

5.AlertDialog - 半自定义对话框

注意 .setView( View )

//半自定义对话框
        View view = LayoutInflater.from(context).inflate(R.layout.view,null);
        AlertDialog alertDialog=new AlertDialog.Builder(context)
                .setIcon(R.drawable)
                .setTitle("标题")
                .setView(view)
                .setNegativeButton("阴性按钮(左)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .setPositiveButton("阳性按钮(右)名称", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialogInterface, int i) {
                        //执行代码
                        alertDialog.dismiss();//销毁对话框
                    }
                })
                .create();
        alertDialog.show();

6.AlertDialog - 全自定义对话框

不常用

7.ProgressDialog - 圆形进度条对话框 

 //圆形进度条对话框
        ProgressDialog progressDialog=new ProgressDialog(context);
        progressDialog.setMessage("信息");
        progressDialog.show();

8.ProgressDialog - 条形进度条对话框  

.setProgressStyle( ProgressDialog.STYLE_HORIZONTAL ) 用于设置水平

.setMax(100) 设置最大值

.setProgress(10) 设置当前进度

//圆形进度条对话框
ProgressDialog progressDialog=new ProgressDialog(context);
progressDialog.setMessage("信息");
progressDialog.setProgressStyle( ProgressDialog.STYLE_HORIZONTAL );
progressDialog.setMax(100);
progressDialog.setProgress(10);
progressDialog.show();

9.DatePickerDialog - 日期选择弹出框

DatePickerDialog可以使用.setOnDateSetListener()方法设置选择日期监听器,使用.show()方法弹出窗口,使用.cancel()方法关闭弹出窗口。

DatePickerDialog datePickerDialog=new DatePickerDialog( context );
datePickerDialog.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() {
    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
        //i年 i1月 i2日
        //关闭窗体
        datePickerDialog.cancel();
    }
 });
 datePickerDialog.show();

10.TimePickerDialog - 时间选择弹出框

TimePickerDialog可以使用构造方法第二个参数OnTimeSetListener()设置选择日期监听器,使用.show()方法弹出窗口,使用.cancel()方法关闭弹出窗口。

TimePickerDialog timePickerDialog=new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
       public void onTimeSet(TimePicker timePicker, int i, int i1) {
       }
    },0,0,true);
timePickerDialog.show();