¿Cómo desactivar el teclado suave de Android para una actividad en particular?

Tengo una actividad con un EditText donde sólo necesito ingresar números.

Ahora, he definido el tipo de entrada para mi EditText para ser sólo el número y han elaborado un bonito teclado para que mi usuario utilice, sin embargo, también tengo que asegurarse de que el teclado no pop-up para mi usuario cuando hacen clic en El EditText.

He intentado esconder el teclado a través del manifiesto añadiendo

android:windowSoftInputMode="stateAlwaysHidden" 

En mi Manifiesto para la actividad en particular, pero esto no funciona para mí porque tan pronto como el usuario hace clic en el EditText el teclado aparece de nuevo.

He intentado hacer igual programmatically como así que

 activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Pero eso tampoco funciona. El teclado aparece cuando el usuario hace clic en EditText.

Lo único que funcionó fue establecer InputType a null para el EditText así:

 EditText.setInputType(InputType.TYPE_NULL); 

Pero no puedo usar esto porque permitirá a los usuarios que tienen un teclado conectado a su dispositivo introducir letras y otros símbolos en el campo EditText, mientras que quiero que todos usen específicamente sólo el teclado para ingresar datos en el campo.

También debo mencionar que actualmente estoy probando mi aplicación en android 2.1, pero me gustaría que mi solución funcionara en todas las versiones. Cualquier ayuda sería apreciada. Gracias por adelantado.

En Whitever Edittext necesita deshabilitar el teclado virtual, agregue un atributo en xml de ese texto de edición.

 <EditText android:id=".." .. android:focusable="false" /> 

Detendrá la ejecución del teclado suave.

Sólo pensé que podría ser posible ampliar EditText y manejar el acceso a la Softkeyboard a través de allí y se encontró con esta cuestión que tiene una solución muy elegante a mi problema.

Simplemente seguí los pasos y esto manejó el teclado virtual perfectamente para mí. Espero que ayude a otros que se encuentran con este tema.

Usa el android:windowSoftInputMode="stateHidden" en tu actividad en el archivo de manifiesto. Esto funcionará. No utilice el android: focusable = "false" para EditText a menos que no esté dispuesto a ingresar el texto. Si desea dar entrada a continuación, quite esa propiedad para el edittext en el archivo de diseño.

Si está utilizando, por ejemplo, ViewGroup, le permite bloquear el teclado virtual utilizando este método:

 view.setDescendantFocusability(view.FOCUS_BLOCK_DESCENDANTS); 

Gracias a esto la vista se enfocará ante cualquiera de sus descendientes.

  • Android: captura de acción para el teclado de entrar en el botón que se presiona
  • Teclado duro No se puede enfocar editText
  • Android Implementa dos fragmentos que tienen un comportamiento diferente cuando aparece el teclado
  • ¿Cómo desactivar el bloqueo de teclado y mostrar una actividad al usuario cuando se dispara el receptor de SCREEN_ON?
  • Teclado virtual de Android 3.1 en modo de pantalla completa
  • Cómo agregar CustomView a mi teclado personalizado en android como el teclado GIF
  • Cambiar el diseño del teclado dinámicamente
  • Utilice la tecla "ENTER" en el teclado en lugar de hacer clic en el botón
  • Teclado de red Emacs
  • ¿Cómo crear un teclado en pantalla de Android que no es un rectángulo en la parte inferior de la pantalla?
  • ¿Cómo configurar edittext para mostrar el botón de búsqueda o el botón de entrada en el teclado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.