如何在 DatePickerDialog Android 中禁用今天日期之后的日期?

Posted

技术标签:

【中文标题】如何在 DatePickerDialog Android 中禁用今天日期之后的日期?【英文标题】:How to disable dates after today date in DatePickerDialog Android? 【发布时间】:2016-10-17 17:09:49 【问题描述】:

我想在 DatePickerDialog 中禁用所有 Next(after)today 日期开始的日期。

我正在使用下面的代码来创建 DatePickerDialog:

    Calendar calendar = Calendar.getInstance();
    mYear = calendar.get(Calendar.YEAR);
    mMonth = calendar.get(Calendar.MONTH);
    mDay = calendar.get(Calendar.DAY_OF_MONTH);

 //OnDateSetListener
 private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() 
    @Override
    public void onDateSet(DatePicker arg0, int year, int monthOfYear, int dayOfMonth) 
        calendar.set(year, monthOfYear, dayOfMonth);
        String currentDate = date_format.format(calendar.getTime());
        ...
    
;
 //Create DatePickerDialog here
 protected Dialog onCreateDialog(int id) 
    if (id == 999) 
        DatePickerDialog dpDialog = new DatePickerDialog(getContext(), myDateListener, mYear, mMonth, mDay);

        return dpDialog;
    
    return null;

请建议我必须做什么才能在日期选择器对话框中禁用所有以前的日期。

【问题讨论】:

How to Disable future dates in android date picker的可能重复 【参考方案1】:

只需在setMaxDate()DatePickerDialog 中传递当前日期。

DatePickerDialog dpDialog = new DatePickerDialog(getContext(), myDateListener, mYear, mMonth, mDay);
dpDialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());

dpDialog.getDatePicker().setMaxDate(System.currentTimeMillis());

【讨论】:

以上是关于如何在 DatePickerDialog Android 中禁用今天日期之后的日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 datePickerDialog 中检索值?

Material UI:如何在 DatePicker 之外使用 DatePickerDialog?

如何在 DatePickerDialog Android 中禁用今天日期之前的日期?

如何在 DatePickerDialog Android 中禁用今天日期之后的日期?

如何在按钮单击时显示 DatePickerDialog? [关闭]

如何在 xamarin 表单中更改视觉材料 DatePickerDialog 和 TimePickerDialog 背景颜色