android - 如何在 Android DatePicker 中设置最小和最大日期?

标签 android android-datepicker

我正在使用 Android 的默认日期选择器,我支持的最小 SDK 是 10,我想设置日期选择器的最小和最大日期。

这是我的 MainActivity 类中 onCreate 方法之后的内容:

private void registerButtonListeners() {
    Calendar.setOnClickListener(new View.OnClickListener() 
    {   
        @Override
        public void onClick(View v) {
            showDialog(DATE_PICKER_DIALOG);
        }
    });
}

@Override
protected Dialog onCreateDialog(int id)
{
    switch(id)
    {
    case DATE_PICKER_DIALOG: return showDatePicker();

    }
    return super.onCreateDialog(id);
}
private DatePickerDialog showDatePicker()
{
        DatePickerDialog datePicker= new DatePickerDialog(MainActivity.this,android.R.style.Theme_Holo_Dialog_NoActionBar_MinWidth,new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                mCalendar.set(Calendar.YEAR,year);
                mCalendar.set(Calendar.MONTH,monthOfYear);
                mCalendar.set(Calendar.DAY_OF_MONTH,dayOfMonth);
                updateDateText();

            }
        },mCalendar.get(Calendar.YEAR),mCalendar.get(Calendar.MONTH),mCalendar.get(Calendar.DAY_OF_MONTH));


        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
        {
            long d=1356994800000L;
            //datePicker.getDatePicker().setMinDate(d);
            //datePicker.getDatePicker().setMaxDate(1546210800000L);

        }
        return datePicker;
}

最佳答案

您可以从 DatePickerDialog 获取基础 DatePicker(通过简单地调用 getDatePicker())并使用以下方法设置其范围:

其中参数是默认时区自 1970 年 1 月 1 日 00:00:00 以来的通常毫秒数。当然,您仍然需要计算这些值,但这对于 Calendar 类来说应该是微不足道的:只需传递当前日期并从中添加或减去 x 年..

关于android - 如何在 Android DatePicker 中设置最小和最大日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20813311/

相关文章:

android - 我可以更改 Android DatePicker (Mode - Spinner) 所选项目的颜色吗?

android - 如何在Android中更改 "MaterialDatePicker"的主题?

android - 可搜索 Activity 未调用,当我使用 applicationIdSuffix '.debug'

Android 内置麦克风释放问题

java - 记录并存储曲线形状的路径

android - java.lang.VerifyError : Verifier rejected class 错误

android - Android MediaCodec NDK 未使用 SPS/PPS VUI

java - Android 自定义日历/日期选择器

android - 隐藏在软键盘后面的日期选择器对话框