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


Android: Cómo obtener el tiempo de un TimePicker cuando se escribe en

Tengo un DialogPreference que implementa un simple TimePicker.OnTimeChangedListener (ver más abajo). Ajustar la hora haciendo clic en los botones +/- funciona muy bien. Pero no sé cómo guardar el estado del timepicker cuando el usuario mecanografió en el tiempo directamente en el textfield. Podría ser suficiente para acceder al valor de campo de texto actual, por lo que sería capaz de persistir en onDialogClosed. Pero timePicker.getCurrentHour () no lo hará. Por favor ayuda…

public class TimePreference extends DialogPreference implements TimePicker.OnTimeChangedListener { // ... @Override public void onTimeChanged(TimePicker view, int hours, int minutes) { selectedHours = hours; selectedMinutes = minutes; } @Override public void onDialogClosed(boolean positiveResult) { if(positiveResult) { String timeString = selectedHours + ":" + selectedMinutes; if(isPersistent()) { persistString(timeString); } } } // ... } 

  • Android TimePickerDialog set max time
  • Android: Establecer el tiempo en el selector de tiempo con el tiempo mostrado en la vista de texto
  • Android: ¿cómo tener este tipo de selección de tiempo?
  • Diálogo de selección de fecha y hora
  • ¿Cómo configurar el TimePickerDialog a 24 horas?
  • Obtener el valor del selector de fecha y hora a partir de un solo fragmento de diálogo y establecerlo en EditText
  • Android: TimePicker setIs24HourView no funciona
  • Android - ¿Cómo puedo cambiar el textColor en un TimePicker?
  • 2 Solutions collect form web for “Android: Cómo obtener el tiempo de un TimePicker cuando se escribe en”

    No había notado este problema hasta que tropecé en esta pregunta. Hay una solución simple: cuando el usuario está terminado cambiando la fecha y la hora en mi aplicación, simplemente llamo finish () y en onPause () o onStop () o onDestroy () hago esto:

     // force the timepicker to loose focus and the typed value is available ! timePicker.clearFocus(); // re-read the values, in my case i put them in a Time object. time.hour = timePicker.getCurrentHour(); time.minute = timePicker.getCurrentMinute(); 

    Después de esto, almacenar el valor time.toMillis (false) en la columna apropiada de mi tabla.

    No sé si el timepicker todavía es accesible en su onDialogClosed (boolean positiveResult). Si no es así, busque otra devolución de llamada para utilizarla cuando todavía esté.

    Espero que esto ayude.

    Sólo una muy mala solución hasta ahora …

     ViewGroup v = (ViewGroup) timePicker.getChildAt(0); ViewGroup numberPicker1 = (ViewGroup) v.getChildAt(0); ViewGroup numberPicker2 = (ViewGroup) v.getChildAt(1); String hours = ((EditText) numberPicker1.getChildAt(1)).getText().toString(); String mins = ((EditText) numberPicker2.getChildAt(1)).getText().toString(); selectedTime = hours+":"+mins; 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.