Android原生控件【DatePickerDialog】简单的使用

(1)首先在布局文件中定义一个Button以及对应的id

(2)当点击该按钮时,代码如下:

                // 弹出对话框
                Calendar calendar = Calendar.getInstance();
                DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
                        null,
                        calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH),
                        calendar.get(Calendar.DAY_OF_MONTH));
                datePickerDialog.show();

效果如图:

(3)如果想要给【取消】、【确定】按钮添加事件的话,【取消】不用管,因为当你点击时会关闭当前对话,我们只需写确认的逻辑,代码如下:

                // 弹出对话框
                Calendar calendar = Calendar.getInstance();
                DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
                        null,
                        calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH),
                        calendar.get(Calendar.DAY_OF_MONTH));
                datePickerDialog.show();
                
                // 确认按钮
                datePickerDialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(view -> {
                    toast("positive button");
                    datePickerDialog.dismiss();
                });

(4)获取选中后的日期,代码如下:

                // 弹出对话框
                Calendar calendar = Calendar.getInstance();
                DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
                        null,
                        calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH),
                        calendar.get(Calendar.DAY_OF_MONTH));
                datePickerDialog.show();

                // 确认按钮
                datePickerDialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(view -> {
                    // 确认年月日
                    int year = datePickerDialog.getDatePicker().getYear();
                    int monthOfYear = datePickerDialog.getDatePicker().getMonth() + 1;
                    int dayOfMonth = datePickerDialog.getDatePicker().getDayOfMonth();
                    toast(formatDate(year, monthOfYear, dayOfMonth));

                    // 关闭dialog
                    datePickerDialog.dismiss();
                });

其中format()方法是用来格式化日期的,具体如下:

    private String formatDate(int year, int monthOfYear, int dayOfMonth) {
        return year + "-" + String.format(Locale.getDefault(), "%02d-%02d", monthOfYear, dayOfMonth);
    }

(5)DatePickerDialog控件默认展示的按钮是【取消】和【确定】,你也可以重新定义这两个按钮,改变其文字以及对应的点击事件,具体如下:

                // 弹出对话框
                Calendar calendar = Calendar.getInstance();
                DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
                        null,
                        calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH),
                        calendar.get(Calendar.DAY_OF_MONTH));

                // 自定义按钮
                datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Negative", (dialogInterface, i) -> toast("negative button"));
                datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Positive", (dialogInterface, i) -> toast("positive button"));

                datePickerDialog.show();

效果如图:

发现展示的文字和自己定义的不一样,这是因为控件原因,默认的是全大写的,以前在布局文件中定义Button,在设置text属性时,会发现预览图里显示的全是大写,所以针对这个,需要添加以下代码:

                // 弹出对话框
                Calendar calendar = Calendar.getInstance();
                DatePickerDialog datePickerDialog = new DatePickerDialog(mContext,
                        null,
                        calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH),
                        calendar.get(Calendar.DAY_OF_MONTH));

                // 自定义按钮
                datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Negative", (dialogInterface, i) -> toast("negative button"));
                datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "Positive", (dialogInterface, i) -> toast("positive button"));

                datePickerDialog.show();

                // 避免自定义按钮全大写
                datePickerDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setAllCaps(false);
                datePickerDialog.getButton(DialogInterface.BUTTON_POSITIVE).setAllCaps(false);

运行,效果如下:

 

 

以上就是DatePickerDialog控件的简单介绍,觉得还阔以的点个赞mark下吧~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值