Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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?

  • Limitación de fechas de Android DatePicker
  • Diálogo de selección de fecha y hora
  • Android, ¿hay alguna manera de desactivar la escritura dentro de un selector de fecha con el teclado?
  • Jelly Bean DatePickerDialog - ¿hay una manera de cancelar?
  • DatePicker.OnDateChangedListener llamado dos veces
  • Convertir la fecha y la hora en milisegundos en Android
  • Diálogo de divisor Android
  • Establece los límites de fechas de datepicker de android
  • 2 Solutions collect form web for “Lollipop CalenderView DatePicker no llama al método OnDateChanged ()”

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

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.