Android Dialog几种对话框

1,普通对话框 2,单选对话框 3,多选对话框 4,日期选择对话框 5,时间选择对话框 6,日期选择对话框 7,进度条对话框

普通对话框

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("标题栏");
        builder.setMessage("信息显示区");
        //确定按钮,第二个参数为null表示点击后什么也不做
        builder.setPositiveButton("确定",null);
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this, "取消", Toast.LENGTH_SHORT).show();
            }
        });
        //点击其他区域dialog不取消
        builder.setCancelable(false);
        //显示对话框
        builder.create().show();

单选对话框

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("单选对话框");
        //builder.setMessage("message");
        //这行代码不能加,加了就不显示单选的内容了
        final String[] itemNum = {"1", "2", "3"};
        //参数1:单选的内容的数组
        //参数2:默认选中的是哪一项,-1代表都不选中
        //参数3:设置监听器
        builder.setSingleChoiceItems(itemNum, -1, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(DialogActivity.this, itemNum[which], Toast.LENGTH_SHORT).show();
                //隐藏对话框
                dialog.dismiss();
            }
        });
        builder.create().show();

多选对话框

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("多选对话框");
        final String[] itemName = {"选项一","选项二","选项三","选项四"};
        boolean[] checkedItem = {false,false,true,true};
        //参数1:多选内容数组
        //参数2:默认选中哪几项
        //参数3:多选对话框监听器
        builder.setMultiChoiceItems(itemName, checkedItem, new 
        DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                Toast.makeText(DialogActivity.this,
                        isChecked?itemName[which]+"被选中了"
                        :itemName[which]+"未被选中", Toast.LENGTH_SHORT).show();
            }
        });
         //需要什么动作,将null给替换成对应的操作即可
        builder.setPositiveButton("确定",null);
        builder.setNegativeButton("取消", null);
        builder.create().show();

日期选择对话框

        //创建Calendar实例对象
        Calendar calendar = Calendar.getInstance();
        //创建DatePickerDialog并显示
        //参数1:上下文
        //参数2:日期选择回调
        //参数3,4,5 默认显示的年月日
        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                Toast.makeText(DialogActivity.this,
                        year+"-"+(month+1)+"-"+dayOfMonth
                        , Toast.LENGTH_SHORT).show();
            }
        },calendar.get(Calendar.YEAR)
        ,calendar.get(Calendar.MONTH) //月份默认是 0-11
        ,calendar.get(Calendar.DAY_OF_MONTH)).show();

时间选择对话框

        Calendar calendar = Calendar.getInstance();
        new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Toast.makeText(DialogActivity.this,
                        hourOfDay+":"+minute
                        , Toast.LENGTH_SHORT).show();
            }
        },calendar.get(Calendar.HOUR_OF_DAY)
        ,calendar.get(Calendar.MINUTE)
        ,true).show();

进度条对话框

        final ProgressDialog pd = new ProgressDialog(this);
        pd.setTitle("进度");
        pd.setMessage("loading...");
        //设置进度条为水平风格
        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        //设置最大进度值
        pd.setMax(100);
        //创建子线程 模拟下载进度
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i =0;i<=100;i++) {
                    //休眠50毫秒,模拟下载效果
                    SystemClock.sleep(50);
                    //设置当前进度
                    pd.setProgress(i);
                }
                //关闭进度条对话框
                pd.dismiss();
                //google不允许开发者在子线程中修改UI,
                //所以让Toast代码运行在主线程中
                //通过runOnUiThread方法实现
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(DialogActivity.this, "完成", Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }).start();//开启线程
        //显示进度条对话框
        pd.show();

 

转载于:https://my.oschina.net/lanyu96/blog/2249161

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值