Estoy desarrollando y aplicación de Android con el SDK 1.6. Estoy usando un TimePicker
y no quiero que aparezca el teclado al hacer clic en los dígitos del TimePicker
. Solo quiero que se cambie el TimePicker
usando los botones más y menos. Intenté usar android:focusable="false"
y android:focusableInTouchMode="false"
esperando que esos lo hicieran, pero no parecían hacer nada. ¿Hay alguna forma de hacer esto?Inhabilitar la entrada del teclado en Android TimePicker
Respuesta
oportunidad de empleo:
myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);
para desactivar el enfoque en el texto vistas de los números internos
Usted puede hacer esto:
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Por favor refiérase a esta pregunta así:
Esto no funciona para el TimePicker. He hecho eso antes con un EditText. Además, no solo quiero ocultar el teclado virtual, sino básicamente hacer que los EditTexts dentro del TimePicker nunca tengan foco . Yo solo wa nt los valores que se cambiarán usando los botones más y menos, y no quiero que el usuario pueda hacer clic en el área donde están los números y que aparezca un cursor. He estado tratando de averiguar cómo hacer una referencia a esos niños dentro del TimePicker para hacer esto ... pero no puedo entender cómo. – ashughes
Esto hace no trabajo ya sea para EditarTexto controla ... Si pulsa & mantenga pulsada la tecla de menú en una EditarTexto en el que ha establecido InputType.TYPE_NULL
y immhideSoftInputFromWindow(...)
llamada, el teclado en pantalla todavía aparecerá junto con el copiar/pegar opciones de menú.
PD: esto se refería a la publicación anterior sobre el uso de InputtMethodManager, lo siento, quise utilizar el botón "feedback". – Laurent
No sé si esto funciona para TimePicker, pero me pareció que el parametro correcto a utilizar para evitar que el teclado muestre cuando se enfoca una edición de texto o utilizando el menú de goma de la copia y de su contenido:
En primer lugar, debe llamar al setInputType(InputType.TYPE_NULL)
en el editText
.
siguiente instancia del InputTypeManager:
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
Y luego, llamar hideSoftInputFromWindow()
en el objeto imm
, pero utilizando el InputMethodManager.HIDE_NOT_ALWAYS
como segundo parámetro en lugar de 0 (tal como se aconseja en la primera respuesta):
imm.hideSoftInputFromWindow(editText.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS)
Esto evitará que el teclado virtual aparezca siempre al hacer clic/enfocar este control EditText, incluso cuando se usa la tecla de menú para realizar operaciones de copiar/pegar.
PD: si quiere evitar las operaciones de copiar/pegar puede llamar al editText.setEditable(false)
pero no podrá cambiar dinámicamente el contenido de EditText.
he intentado (con el objetivo 4.0.3)
myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);
sin éxito. Después de buscar en Google de "BLOCK_DESCENDANTS TimePicker androide no trabajar" He seguido el golpe
http://code.google.com/p/android/issues/detail?id=38369
donde el último mensaje, que es por un "Proyecto de Miembros", afirma:
"focusability Descendiente se refiere a la capacidad de una vista para enfocar, como en el cruce de enfoque usando un teclado, trackball o d-pad. No afecta los eventos táctiles por diseño.
Si necesita bloquear eventos táctiles desde una vista descendiente, considere anular onInterceptTouchEvent en una vista principal y devolver true cuando se desee bloquear eventos táctiles. Esto hará que los MotionEvents para ser enviados a los padres que intercepta hasta el último puntero sube "
Otra Manera Añadir esto en el código XML:..
android:descendantFocusability="blocksDescendants"
XML:
<NumberPicker
...
android:descendantFocusability="blocksDescendants" />
- 1. Android: Detectar inactividad del usuario/Detectar (teclado) entrada de teclado
- 2. Manejo efectivo de la entrada del teclado
- 3. Android - TimePicker minutos para 15
- 4. ¿Cómo tomar la entrada del teclado en JavaScript?
- 5. CGEventTapCreate está viendo la entrada del teclado en Cocoa
- 6. ¿Cómo simular la entrada del teclado en TODAS las aplicaciones?
- 7. Android Emulator: entrada de teclado suave y entrada de teclado duro
- 8. Configuración de Android TimePicker en XML
- 9. Java recibiendo entrada del teclado MIDI
- 10. ¿Por qué la entrada del teclado dejó de funcionar en Android Emulator?
- 11. ¿Inhabilitar la entrada para que se excluyan de POST?
- 12. Android - Obtener la tecla del teclado presione
- 13. jQuery: ¿Cómo puedo escuchar la entrada general del teclado?
- 14. Control deslizante jQuery-UI: cómo desactivar la entrada del teclado?
- 15. ¿Por qué mi control no acepta la entrada del teclado?
- 16. ¿Puedo cambiar la entrada del teclado de un usuario?
- 17. TimePicker NullPointerException en ICS
- 18. PhoneGap android: el teclado se superpone al campo de entrada
- 19. Android: timepicker y datepicker en el mismo cuadro de diálogo
- 20. ¿Cómo cambiar la fuente de la tecla del teclado Android?
- 21. Cambiar el método de entrada del dispositivo Android programáticamente Android
- 22. Inhabilitar publicaciones en MSBuild
- 23. Entrada de teclado/mouse en C++
- 24. Mostrando el teclado del iPhone en diferentes idiomas según la entrada del usuario
- 25. Teclado Android api
- 26. Encuentra el idioma del teclado Android actual
- 27. ¿Cómo puedo capturar cuando el tiempo cambia en un TimePicker si se usa el teclado "Suave"?
- 28. La forma F # muy simple se bloquea en la entrada del teclado
- 29. Teclado numérico de software en Android
- 30. ¿Detecta la ocultación del teclado del iPad frente a la conexión del teclado externo?
Esto también funciona con DatePicker, solo use DatePicker.FOCUS_BLOCK_DESCENDANTS en su lugar. – swanson
Simplemente use ViewGroup.FOCUS_BLOCK_DESCENDANTS .. Todos tienen el mismo valor - __ - ' – Tobrun
También puede usar android: descenddantFocusability = "blocksDescendants" en xml. – Borzh