Desactivar fechas específicas del día en el selector de fechas de Android
Estoy utilizando el datePicker y puedo deshabilitar los últimos días de hoy y los días posteriores después de 30 días por el siguiente código:
DatePickerDialog datePicker = new DatePickerDialog(); Calendar calender = Calendar.getInstance(); long today = calender.getTimeInMillis(); final long oneDay = 24 * 60 * 60 * 1000L; Date previousDays = new Date(today - 1000); datePicker.setMinDate(DateToCalendar(previousDays)); Date nextMonth = new Date(today + 30 * oneDay); datePicker.setMaxDate(DateToCalendar(nextMonth));
Si quiero desactivar el viernes de cada mes, ¿cómo puedo hacer esto?
- Ejemplo de DatePicker en android
- Cómo devolver el valor de la fecha de DatePickerDialog en Android?
- Buscar Android DatePickerDialog
- Android: ¿Cómo diseñar el DatePicker?
- Forzar cierre cuando los cambios de orientación con fecha abierta DialogueFragment
- Diálogo de selector de fechas personalizado en Android Lollipop
- CalendarViewShown no está siendo reconocido en Android 5.0 Lollipop
- Desactivar fechas futuras en el selector de fechas de Android
- Obtener el valor del selector de fecha y hora a partir de un solo fragmento de diálogo y establecerlo en EditText
- Implementar el selector horizontal de fechas en Android
- Obtener una marca de tiempo larga del selector de fechas onDateSet
- ¿Cómo puedo configurar la fecha actual en un DatePicker?
- ¿Cómo hacer que un oyente para un botón de cancelar datepickers en Android?
Puede utilizar esta biblioteca Material Date Time Picker , aquí puede configurar una opción para mostrar fechas específicas, Por ejemplo:
datePicker.setSelectableDays(Calendar[] days)
Y pase la matriz de Calendar
como un parámetro que contiene toda la fecha seleccionable.
Eso no es posible con el datepicker android y necesitas crear un selector personalizado para ti. Vea MaterialDateTimePicker
Para desactivar los domingos tienes que pasar la matriz como esta
List<Calendar> dayslist= new LinkedList<Calendar>(); Calendar[] daysArray; Calendar cAux = Calendar.getInstance(); while ( cAux.getTimeInMillis() <= gc.getTimeInMillis()) { if (cAux.get(Calendar.DAY_OF_WEEK) != 1) { Calendar c = Calendar.getInstance(); c.setTimeInMillis(cAux.getTimeInMillis()); dayslist.add(c); } cAux.setTimeInMillis(cAux.getTimeInMillis() + (24*60*60*1000)); } daysArray = new Calendar[dayslist.size()]; for (int i = 0; i<daysArray.length;i++) { daysArray[i]=dayslist.get(i); } datePickerDialog.setSelectableDays(daysArray);
Visite https://stackoverflow.com/a/44692231/6631959 El mejor método y fácil de entender … si u está buscando cómo deshabilitar una fecha especificada es mejor. No un procedimiento de bucle. Dando cualquier fecha exacta y desactivándola.
El código es HEre ::
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); String a = "26-07-2017"; java.util.Date date = null; try { date = sdf.parse(a); MainActivity obj = new MainActivity(); calendar = obj.dateToCalendar(date); System.out.println(calendar.getTime()); } catch (ParseException e) { e.printStackTrace(); } List<Calendar> dates = new ArrayList<>(); dates.add(calendar); Calendar[] disabledDays1 = dates.toArray(new Calendar[dates.size()]); dpd.setDisabledDays(disabledDays1); private Calendar dateToCalendar(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; }
- Exportar la interfaz de usuario de Inventor de aplicaciones a Eclipse
- ¿Cómo funcionan las funciones de orden superior de Kotlin?