Lollipop CalenderView DatePicker no llama al método OnDateChanged ()
Estoy trabajando con un DatePicker y encontrando que bajo Android 5.0 no llamará el método OnDateChanged () en su OnDateChangedListener cuando está en modo CalendarView aunque se ha seleccionado una nueva fecha. Si android: datePickerMode = "spinner" se establece en la etiqueta xml de DatePicker, el DatePicker aparecerá como spinners y llamará OnDateChanged () cuando se seleccione una nueva fecha. En versiones anteriores de Android, un DatePicker llama a OnDateChanged () cuando se selecciona una nueva fecha en las versiones CalendarView y Spinners. Aquí está el código relevante:
@SuppressLint("InflateParams") View v = getActivity().getLayoutInflater().inflate(R.layout.dialog_date, null); DatePicker datePicker = (DatePicker) v.findViewById(R.id.dialog_date_DatePicker); datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int month, int day) { //Translate year, month, day into a Date object using a calendar mDate = new GregorianCalendar(year, month, day).getTime(); //Update argument to preserve selected value on rotation getArguments().putSerializable(EXTRA_DATE, mDate); } });
En mi aplicación, onDateChanged () no se llama y mDate no se cambia si el DatePicker está en modo CalendarView bajo Lollipop, pero OnDateChanged () se llama y mDate cambia si el DatePicker está en modo Spinners. Bajo versiones anteriores de Android, OnDateChanged () se llama y mDate se cambia en ambas versiones de la DatePicker.
- Obtener fecha de datepicker usando dialogfragment
- ¿Por qué Chrome en el selector de fecha HTML5 nativo de Android se vuelve muy lento?
- Uso de DatePicker sin selector de día
- Problema de compatibilidad de Android DatePicker con la biblioteca MonkeyTalk
- Jelly Bean DatePickerDialog - ¿hay una manera de cancelar?
¿Hay alguna manera de obtener un CalendarView DatePicker en 5.0 para llamar a OnDateChanged ()? De lo contrario, ¿de qué otra manera puedo recuperar una fecha modificada del DatePicker cuando está en modo CalendarView?
- DatePicker no funciona al intentar utilizarlo
- Limitación de fechas de Android DatePicker
- DateTimePicker android
- Ios como el selector de fecha / hora para la plataforma android
- Obtener una marca de tiempo larga del selector de fechas onDateSet
- Cómo ocultar el encabezado en CalendarView en DatePicker?
- Ejemplo de DatePicker en android
- Cómo obtener la fecha del selector de fecha en android?
Tengo el mismo problema y la cosa es onDateChange () y onTimeSet () oyentes para DatePicker y TimePicker no se llama en dispositivos Nexus con lollipop Update.
La razón está en los dispositivos del nexo, puesto que la aplicación del reloj se pone al día, los oyentes no están trabajando.
El trabajo alrededor es una vez que el diálogo se despide, usted necesita crear su propio oyente y establecer los valores en un objeto de calendario usando los métodos datepicker get () y pasar el calendario al oyente.
Un código de ejemplo simple es
/** * Returns the calendar instance once the date and time is set. * @return */ public Calendar getDateTime() { mCalendar.set(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth(), timePicker.getCurrentHour(), timePicker.getCurrentMinute()); return mCalendar; }
Establezca esto en su Xml-Layout:
<DatePicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:datePickerMode="spinner" android:spinnersShown="false" android:id="@+id/datepicker_popupwindow"/>
Con "android: spinnersShown =" false "" le dices que no muestre el Spinner. Pero llamará al método 'onDateChanged'.