Android: ¿Cómo hacer que el teclado siempre esté visible?

En Android, ¿cómo hacemos que el teclado del dispositivo siempre esté visible en la aplicación? La parte superior muestra el contenido que la aplicación desea representar y la parte inferior muestra el teclado siempre.

Agregue android: windowSoftInputMode = “stateAlwaysVisible” a su actividad en el archivo AndroidManifest.xml:

 

En mi aplicación de prueba, esto muestra el teclado al inicio de la aplicación, aunque no está fijo allí, pero se puede descartar presionando el botón Atrás.

Para asegurarse de que el teclado esté siempre visible, es posible que deba crear su propio teclado como parte de la interfaz de usuario de su aplicación. Aquí hay un tutorial para mostrarle cómo hacer esto con KeyboardView: http://www.fampennings.nl/maarten/android/09keyboard/index.htm

Debe tener un EditText en su diseño y que necesite EditText clase base de EditText . luego, reemplaza el método onKeyPreIme() y devuelve True . Ahora su teclado estará siempre visible y no puede ser descartado por la tecla Atrás.

Precaución : Debido a que su método onKeyPreIme() devuelve true no puede salir de su aplicación utilizando la tecla Atrás.

Ejemplo:

 public class CustomEdit extends EditText { public CustomEdit(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { // TODO Auto-generated method stub Log.e("Log", "onKeyPreIme"); return true; //return super.onKeyPreIme(keyCode, event); } } 

onKeyPreIme () – Desarrollador de Android

Encontré una manera que me funciona para mantener el teclado myEditText visible después de una edición en mi campo myEditText de la clase EditText . El truco es anular el método onEditorAction para que devuelva true

  myEditText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { return true; } }); 

o bien, tiene onEditorAction return true solo después del clic “Hecho” ( IME_ACTION_DONE ) de lo contrario false

  myEditText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if(actionId==EditorInfo.IME_ACTION_DONE){ Log.i(LOG_TAG, "IME_ACTION_DONE"); return true; } return false; } }); 

(vea también esta respuesta en el método onEditorAction )

Agregar android:windowSoftInputMode="stateAlwaysVisible to the Manifest file ayudó a que el teclado android:windowSoftInputMode="stateAlwaysVisible mostrara al inicio de la actividad, pero no evitó que desapareciera nuevamente cada vez que se hacía clic en la tecla” Done “después de una edición.