【发布时间】:2023-01-19 19:50:07
【问题描述】:
我有一个日期范围选择器(材料设计),我想禁用以前的日期(因此最短日期将是当天),最大日期将是 6 个月后。我试过这样的事情:
val calendar = Calendar.getInstance()
val constraintsBuilderRange = CalendarConstraints.Builder()
val dateValidatorMin: CalendarConstraints.DateValidator = DateValidatorPointForward.from(calendar.timeInMillis)
val dateValidatorMax: CalendarConstraints.DateValidator = DateValidatorPointBackward.before(calendar.timeInMillis+100000000)
val listValidators = ArrayList<CalendarConstraints.DateValidator>()
listValidators.add(dateValidatorMin)
listValidators.add(dateValidatorMax)
val validators = CompositeDateValidator.allOf(listValidators)
constraintsBuilderRange.setValidator(validators)
val datePicker = MaterialDatePicker.Builder.dateRangePicker()
.setTitleText("Select range")
.setCalendarConstraints(constraintsBuilderRange.build())
.build()
datePicker.show(
this.requireFragmentManager(),"date_range_picker"
)
这有效,但我随机给dateValidatorMax 100000000。那么如何实现毫秒后6个月呢?我怎样才能在dateValidatorMin 中获得 currentDate 前 1 天?
【问题讨论】:
-
一小时有 3,600,000 毫秒。所以 6 个月是 15,768,017,280(超过 150 亿毫秒)