6

Continuando con la cuestión planteada en el siguiente enlace:¿Cómo puedo capturar cuando el tiempo cambia en un TimePicker si se usa el teclado "Suave"?

How can I capture when time changes in a TimePicker if the keyboard is being used?

que podría resolver el problema, pero sólo funciona cuando se utiliza el teclado real. Si usa el teclado virtual no puedo hacer que funcione.

Estoy programando en la versión 1.6 del framework.

Cualquier ayuda será muy apreciada.

PD: El hecho de que he buscado en todas partes la respuesta y no he podido encontrarla me dice que esto debe ser muy simple o muy complicado. ¡¿Ayuda?!

Respuesta

0

Esto es lo que funcionó para mí: Descubrí que este problema es solo un problema dependiendo del dispositivo con el que trabaje. Tengo un Samsung Moment, así que después de probar en otros dispositivos (obviamente no todos) y emuladores descubrí que solo estaba sucediendo con mi teléfono.

El siguiente enlace me ayudó a resolver mi problema. Espero que te ayuda ...

http://blog.xiaad.com/2010/03/android-datepicker-years-before-2000.html

N-alegría!

Simmone

1

Tengo el mismo problema. Si uso TimePickerDialog no hay problema. Para poder utilizar TimePicker en un DialogPreference, esta es la solución peor que he tomado en mi vida, bajando la vista de jerarquía de la TimePicker:

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(); 

String selectedTime = hours+":"+mins; 

Esta manera de que pudiera acceder al texto directamente que fue escrito en - pero hay DEBE ser una mejor manera de administrar entradas de teclado ...

+0

Cody ... puede ser es el dispositivo. Comprobé con el G1 y funcionaba bien, pero funcionó de una manera diferente en mi Samsung Moment. ¿Has comprobado si el comportamiento es el mismo en otros dispositivos? – monn3t

+0

No, no lo hice, solo sé que mi timepicker no se comportó como se esperaba en un emulador. Quizás tienes razón. De todos modos, si no funciona correctamente en todos los dispositivos de destino, tiene que haber una solución. No puede simplemente adjuntar un OnTimeSetListener a un TimePicker, como para TimePickerDialog. Parece que OnTimeChangedListener solo se ocupa de una entrada manual, si el EditText respectivo pierde el foco antes de hacer clic en el botón Aceptar. Si todavía tiene foco al hacer clic en Aceptar, OnTimeChangedListener no lo nota. – cody

+0

@cody - Acabo de encontrar este hilo después de toparme con este problema. He implementado su solución alternativa y parece funcionar perfectamente, pero como este hilo es tan antiguo, ¿se ha encontrado con una mejor manera de obtener los tiempos del TimePicker cuando usa el teclado virtual? – dell116

1

En referencia al comentario de Cody, debe quitar el foco del TimePicker cuando se cierra el cuadro de diálogo.

Puede utilizar este, donde tp es la instancia TimePicker:

public void onDialogClosed(boolean positiveResult) { 
    tp.clearFocus(); 
+0

No relacionado, pero ¿alguien más odia la forma en que se formatea el código en estas respuestas?El resultado representado generalmente no se parece en nada al cuadro de edición ...

Cuestiones relacionadas