'How to disable future dates in Android MaterialDatePicker?
I am trying to create a simple DatePicker using MaterialDatePicker where future dates are disabled. I tried few answers from other similar StackOverflow questions but it didn't work. This is my code so far:-
val datePicker = MaterialDatePicker.Builder.datePicker().apply {
setTitleText(getString(R.string.label_select_dob))
setCalendarConstraints(limitRange().build())
}.build()
private fun limitRange(): CalendarConstraints.Builder {
val calendarStart: Calendar = Calendar.getInstance()
val calendarEnd: Calendar = Calendar.getInstance()
val year = 1900
val startMonth = 1
val startDate = 1
calendarStart.set(year, startMonth, startDate)
calendarEnd.set(2021, 3, 27)
val minDate: Long = calendarStart.timeInMillis
val maxDate: Long = calendarEnd.timeInMillis
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))
return constraintsBuilder
}
Solution 1:[1]
val constraintsBuilder =
CalendarConstraints.Builder()
.setValidator(DateValidatorPointBackward.now())
val dataPicker = MaterialDatePicker.Builder.datePicker().apply {
setTitleText("Select Previous Dates")
setCalendarConstraints(constraintsBuilder.build())
}.build()
Solution 2:[2]
First Create a Constraints Builder
val constraintsBuilder = CalendarConstraints.Builder().setValidator(DateValidatorPointBackward.now())
Second Pass it to setCalendarConstraints method
val dialog1 = MaterialDatePicker.Builder.datePicker().setCalendarConstraints(constraintsBuilder.build())
Assign it to a variable and display
val picker = dialog1.build()
picker.show(adapter.getFragmentManager(), picker.toString())
For more information on Material Date Picker Library, you can visit the below link:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Vishnu Vidhyadhran |
| Solution 2 | benson23 |
