android - 在 android studio 的 Material 日期选择器中禁用日期

标签 android android-studio datepicker android-datepicker datepickerdialog

这个问题在这里已经有了答案:





Restrict Range in Android DatePicker Custom Dialog

(3 个回答)


去年关闭。




我很想有一个选项,我可以使用 calendarConstraints 选择一个 maxDate 和一个 minDate。就像普通的 DatePicker 有 DatePicker.setMaxDate()DatePicker.setMinDate()方法,我会喜欢 materialDatePicker 的相同方法。

我在开发我的应用程序时使用了 materialDatePicker,我发现很难为打开的 datePicker 设置 minDate 和 maxDate 属性。我正在打开日期选择器以在 2 个不同的文本字段中选择开始日期和结束日期以添加特定时间段。
不,我不想选择范围日期。我已经研究过这个,它不符合我的要求。我可以设置一个 maxDate使用

calendarConstraints.setValidator(DateValidatorPointForward.from(startDate)) 

但我无法使用 materialDatePicker 选择 minDate。

代码:
     CalendarConstraints.Builder ccb=new CalendarConstraints.Builder();
//        ccb.setEnd(calendar.getTimeInMillis());

//        ccb.setEnd(today);

        MaterialDatePicker.Builder<Pair<Long,Long>> builder = MaterialDatePicker.Builder.dateRangePicker();
        builder.setTitleText("Select Date Range");
        builder.setCalendarConstraints(ccb.build());

最佳答案

您应该使用函数 DateValidatorPointBackward 来设置 maxDate。像这样的东西:

val constraintsBuilder = CalendarConstraints.Builder()
val validators: ArrayList<CalendarConstraints.DateValidator> = ArrayList()
validators.add(DateValidatorPointForward.from(minDate))
validators.add(DateValidatorPointBackward.before(maxDate))
constraintsBuilder.setValidator(CompositeDateValidator.allOf(validators))

关于android - 在 android studio 的 Material 日期选择器中禁用日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60846772/

相关文章:

jquery - Datepicker - 如何将默认日期设置为下一个可用日期而不是 "today"?

Angular 5 Material日期选择器不支持使用输入的 "DD/MM/YYYY"格式

java - 从可绘制对象设置背景墙纸

java - 将操作栏的标题从 Fragment 更改为 Activity

android-studio - 如何从 Android Studio 对 Flutter 项目的分析中排除文件?

android-studio - Android Studio中访问R.drawable抛出KotlinFrontEndException

android - 从 c2dm 监听器事件触发警报框

java - 如何对编程特别是 java 和 android 产生兴趣

java - 如何使用原生 Android Studio Java 运行 gradlew 构建

javascript - 尝试使用名称访问表中字段上的日期选择器时出现问题