Deshabilitar la entrada de teclado en Android TimePicker

Estoy desarrollando y la aplicación de Android utilizando el SDK 1.6. Estoy usando un TimePicker y no quiero que el teclado TimePicker aparezca cuando hagas clic en los dígitos del TimePicker . Sólo quiero que el TimePicker se cambie usando los botones más y menos. He intentado usar android:focusable="false" y android:focusableInTouchMode="false" esperando que lo hicieran, pero no parecían hacer nada. ¿Hay alguna forma de hacer esto?

tratar de usar:

 myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS); 

Para deshabilitar el enfoque en las vistas de texto del NumberPickers interno

De otra manera . Agregue esto en su XML:

android:descendantFocusability="blocksDescendants"

XML:

 <NumberPicker ... android:descendantFocusability="blocksDescendants" /> 

No sé si esto funciona para TimePicker, pero encontré el paramter correcto para usar para evitar que el teclado aparezca al enfocar un texto de edición o usar el menú de copiar y pegar en su contenido:

En primer lugar, debe llamar a setInputType(InputType.TYPE_NULL) en el editText .

Instancia siguiente el InputTypeManager:

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

Y luego, llame a hideSoftInputFromWindow() en el objeto imm , pero usando InputMethodManager.HIDE_NOT_ALWAYS como segundo parámetro en lugar de 0 (como se aconseja en la primera respuesta):

 imm.hideSoftInputFromWindow(editText.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS) 

Esto evitará que el teclado suave aparezca al hacer clic / enfocar este control de EditarTexto, incluso cuando use la tecla de menú para realizar operaciones de copiar / pegar.

PS: si quieres evitar copiar / pegar operaciones puedes llamar a editText.setEditable(false) pero entonces no podrás cambiar dinámicamente el contenido del EditText.

Acabo de probar (orientación 4.0.3)

 myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS); 

Sin éxito. Después de buscar google para "android TimePicker BLOCK_DESCENDANTS no funciona" seguí el éxito

 http://code.google.com/p/android/issues/detail?id=38369 

Donde el último post, que es un "miembro del proyecto", dice:

"La focalización descendente se refiere a la capacidad de una vista para concentrarse, como en el recorrido de enfoque mediante teclado, trackball o d-pad. No afecta a los eventos táctiles por diseño.

Si necesita bloquear eventos táctiles desde una vista descendente, considere sobreescribir onInterceptTouchEvent en una vista primaria y devolver true cuando se desea bloquear eventos táctiles. Esto hará que los MotionEvents sean enviados al padre interceptor hasta que el último puntero suba. "

Puedes hacerlo:

  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

Por favor refiérase también a esta pregunta:

Cerrar / ocultar el teclado suave de Android

Esto no funciona para los controles de EditText … Si presiona y mantenga presionada la tecla Menú en un EditText en el que ha establecido InputType.TYPE_NULL y llamado immhideSoftInputFromWindow(...) , el teclado immhideSoftInputFromWindow(...) seguirá apareciendo junto con la copia / Pegar opciones de menú.

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