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.

¿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?

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'.

  • BetterPickers sin una biblioteca de soporte
  • ¿Cómo alimentar el widget de DatePicker con otros sistemas de calendario?
  • Eliminar el año de DatePickerDialog
  • Android 5.0 DatePicker con Theme.AppCompat
  • DataPicker se ve como diseño antiguo en la nueva API, así
  • Android datepicker set fecha máxima hace 14 años
  • Buscar Android DatePickerDialog
  • Visualización de un DatePicker con o sin el campo del año
  • ¿Cómo mostrar selector de fecha para android con solo mes y año campos?
  • Usar TimePicker o DatePicker en la pantalla Preferencias en Android
  • Android, ¿hay alguna manera de desactivar la escritura dentro de un selector de fecha con el teclado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.