【问题标题】:Make date picker inclusive on max date使日期选择器包含在最大日期上
【发布时间】:2023-03-26 19:48:01
【问题描述】:

我正在尝试使用 Android 日期选择器通过两个输入来选择日期范围。开始日期以结束日期作为最大日期,结束日期以开始日期作为最小日期。

我想允许将日期选择器设置为相同的日期,以便选择一天作为范围(因为范围包括在内)。

但似乎 min date 包含在内,而 max date 似乎总是排除在外?有什么办法可以使最大日期具有包容性吗?现在,日期选择器将结束日期设置为可以选择的样式,但事实并非如此(我真的很讨厌,因为这令人困惑)。它最终看起来像这样(允许 2 月 28 日作为最大 可选 日期 - 请注意 3 月 1 日 看起来 是可选的,但实际上不是):

我没有在我的代码中做任何特别的事情。只需创建一个DatePickerDialog,然后调用dialog.getDatePicker().setMaxDate(maxDateInMs)

【问题讨论】:

    标签: android datepicker


    【解决方案1】:

    我意识到 minday 和 maxday 都是包容性的

    final Calendar myCalendar = Calendar.getInstance();
    DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
        }
    };
    
    DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, date, myCalendar
            .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
            myCalendar.get(Calendar.DAY_OF_MONTH));
    
    datePickerDialog.getDatePicker().setMinDate(myCalendar.getTimeInMillis());
    datePickerDialog.getDatePicker().setMaxDate(myCalendar.getTimeInMillis()+ DateUtils.DAY_IN_MILLIS);
    
    datePickerDialog.show();
    

    【讨论】:

    • 我尝试了这个并且在视觉上,我看到了同样的东西(正如最初的问题所问的那样),但我无法选择上限。它的样式是可选的,但它不能。我想知道它是否可能是我的手机,因为它卡在某些 5.x 版本的 Android 上。
    • @Kat 你的手机是什么?我在模拟器 nexus 上进行测试,它工作正常。请尝试在一些模拟器上测试
    • 我尝试了一个模拟器,它确实看起来像我的手机。这很奇怪,现在我不知道如何处理,哈哈。我想我会假设大多数人的手机都没有我的那么糟糕:P。
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多