Estoy intentando crear un DatePicker simple usando MaterialDatePicker donde las fechas futuras están deshabilitadas. Probé algunas respuestas de otras preguntas similares de StackOverflow pero no funcionó. Este es mi código hasta ahora:-
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
}
¿Esto responde a tu pregunta? Fecha mínima máxima del selector de fechas de Android antes del nivel de API 11
– Ticherhaz FreePalestine
27/03/2021 a las 16:41
@Ticherhaz: No, esas respuestas son para el diálogo de la biblioteca android.app. Estoy solicitando el cuadro de diálogo de la biblioteca com.google.android.material.datepicker
-Ankur Anand
27/03/2021 a las 17:41
------------------------------------
Para deshabilitar fechas futuras, simplemente use DateValidatorPointBackward proporcionado por la biblioteca.
Con hoy:
val constraintsBuilder =
CalendarConstraints.Builder()
.setValidator(
DateValidatorPointBackward.now())
Si necesita una fecha personalizada (todas las fechas posteriores al 1 de abril):
val calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
calendar[Calendar.DAY_OF_MONTH] = 1
calendar[Calendar.MONTH] = Calendar.APRIL
val april = calendar.timeInMillis
val constraintsBuilder =
CalendarConstraints.Builder()
.setValidator(
DateValidatorPointBackward.before(april))
------------------------------------
val constraintsBuilder =
CalendarConstraints.Builder()
.setValidator(DateValidatorPointBackward.now())
val dataPicker = MaterialDatePicker.Builder.datePicker().apply {
setTitleText("Select Previous Dates")
setCalendarConstraints(constraintsBuilder.build())
}.build()
------------------------------------
Primero cree un generador de restricciones
val constraintsBuilder = CalendarConstraints.Builder().setValidator(DateValidatorPointBackward.now())
Segundo páselo al método setCalendarConstraints
val dialog1 = MaterialDatePicker.Builder.datePicker().setCalendarConstraints(constraintsBuilder.build())
Asignarlo a una variable y mostrar
val picker = dialog1.build()
picker.show(adapter.getFragmentManager(), picker.toString())
Para obtener más información sobre la biblioteca del selector de fecha de material, puede visitar el siguiente enlace:
https://material.io/components/date-pickers/android
Respondido al
4 de marzo de 2022 a las 11:27
Mohd Hasanat Hyder
Mohd Hasanen Hyder
9
2
2 insignias de plata
6
6 insignias de bronce
3
Asegúrate de formatear correctamente tu código.
-Halo
4 de marzo de 2022 a las 15:35
¿Puedes ayudarme con eso? Cómo formatear el código de una buena manera
- Mohd H.asanat hyder
6 de marzo de 2022 a las 12:22
Parece que alguien ya lo ha editado
-Halo
6 de marzo de 2022 a las 12:38