2020.2.20对话框

普通对话框

代码展示

 //设置普通对话框点击事件
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //创建对话框
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.ic_launcher_background);//图标
                builder.setTitle("我是标题");//标题
                builder.setMessage("我是提示信息");//提示的信息
                //设置是否成功或者取消
                builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你点击了Ok", Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你点击的取消", Toast.LENGTH_SHORT).show();
                    }
                });
                //创建页面
                AlertDialog alertDialog = builder.create();
                //显示
                alertDialog.show();
            }
        });

效果展示

在这里插入图片描述

单选对话框

代码展示

 //单选对话框的点击事件
        select_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //创建对话框
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                //创建显示页面
                builder.setIcon(R.drawable.ic_launcher_background);//图标
                builder.setTitle("我是标题");//标题
//                builder.setMessage("提示信息");//提示信息
                builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你点击了ok", Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setNegativeButton("cancle", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你点击了cancle", Toast.LENGTH_SHORT).show();
                    }
                });
                //设置提示的数组
                final String[] str = new String[]{"java","php","c++"};
                builder.setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, ""+str[i], Toast.LENGTH_SHORT).show();
                    }
                });
                AlertDialog alertDialog = builder.create();
                //显示
                alertDialog.show();
            }
        });

效果展示

在这里插入图片描述

注意事项

不能够有setMessage,也就是说不能设置提示信息,否则或出不来效果

多选对话框

代码展示

 //设置多选对话框的点击事件
        duo_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final String[] items = {"小黄","小俊","小小","小李"};
                final boolean[] flags = {false,false,true,false};
                //创建对话框
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                //设置标题,图片的
                builder.setIcon(R.drawable.ic_launcher_background);//图片
                builder.setTitle("这是标题");//标题
                builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        for (int j = 0; j < flags.length ; j++) {
                            if(flags[j]){
                                Toast.makeText(MainActivity.this, "是"+items[j], Toast.LENGTH_SHORT).show();
                            }
                        }
                    }
                });

                builder.setNegativeButton("canale", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
                    }
                });

                builder.setMultiChoiceItems(items, flags, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i, boolean b) {
                       flags[i] = b;
                    }
                });
                //创建页面
                AlertDialog alertDialog = builder.create();
                //显示
                alertDialog.show();
            }
        });

效果展示

在这里插入图片描述

注意事项

两个数组,且数组的个数必须对象,是boolear[],小写的boolear,而不是大写的,如果是大写的会报错

自定义对话框

代码展示

  //自定义布局的点击事件
        zi_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //创建对话框
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.ic_launcher_background);//图片
                builder.setTitle("这是标题");//标题

                View inflate = LayoutInflater.from(MainActivity.this).inflate(R.layout.daiout_item, null);
                builder.setView(inflate);

                AlertDialog alertDialog = builder.create();
                alertDialog.show();

            }
        });

效果展示

在这里插入图片描述
在这里插入图片描述

注意事项

首先,必须得设置一个用于展示的自定义的小布局,这个小布局就是你自己的所要展示的对话框效果

进度对话框

代码展示

//设置水平进度对话框点击事件
        hor_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //创建进度条对话框
                final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
                //设置属性
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置样式  水平的
                progressDialog.setMax(100);//最大的进度
                progressDialog.setMessage("正在下载");//提示的语句
                //页面显示
                progressDialog.show();

                //用定时器去模拟
                final Timer timer = new Timer();
                timer.schedule(new TimerTask() {
                    int count = 0;
                    @Override
                    public void run() {
                        count += 10;
                        progressDialog.setProgress(count);
                        if(count >= 100){
                            progressDialog.dismiss();//界面消失
                            timer.cancel();//取小任务
                        }
                    }
                },0,1000);//0秒后执行,没个1秒执行一次
            }
        });

效果展示

在这里插入图片描述
在这里插入图片描述

注意事项

首先,水平进度对话框和圆形进度对话框本质上没有什么区别,只需要在设置它的样式setProgressStyle的时候设置水平或者圆形就可以了。
其次那个Timer的用法就是timer.schedule有三个参数,第一个参数是timerTask相当于你要执行的任务,第二个参数是多久开始执行,第三个参数是隔多久执行一次。

日期选择对话框

代码展示

 //设置日期选择对话框的点击事件
        day_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //获取日历的对象
               Calendar calendar = getInstance();
                new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                        //吐司提示出选择的时间
                        Toast.makeText(MainActivity.this, ""+i+"-"+i1+"-"+i2, Toast.LENGTH_SHORT).show();
                    }
                },calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)).show();
                    //后面的参数年月日是当前的时间
            }
        });

效果展示

在这里插入图片描述

注意事项

注意这里直接new的方法,然后在.show出来也能出效果。
第一个参数是这个页面MainActivity.this,而不是this,否则会报错

时间选择对话框

代码展示

 //设置时间选择对话框的点击事件
        time_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //获取对象
                Calendar calendar = getInstance();
                new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int i, int i1) {
                        Toast.makeText(MainActivity.this, ""+i+":"+i1, Toast.LENGTH_SHORT).show();
                    }
                },calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),true).show();
            }
        });

效果展示

在这里插入图片描述

注意事项

跟日期选择对话框注意事项一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值