temas teclado swiftkey para los google gboard emojis configurar como cambiar agrandar activar android dialog android-edittext android-softkeyboard

android - swiftkey - teclado gboard



¿Cómo hacer aparecer el Teclado Suave una vez que muestro un Diálogo con un Texto de Edición? (3)

Esto fue respondido aquí , y funciona muy bien para mí. Si presiono el botón de inicio mientras se muestra el teclado, se oculta correctamente después de presionar la tecla de inicio.

Leí un par de publicaciones aquí y también traté de buscar en Google. Pero todavía tengo este problema:
He creado un cuadro de diálogo personalizado subclasificado. Contiene un EditText y un botón ("OK"). Quiero que el teclado se muestre automáticamente una vez que aparece el cuadro de diálogo.

Logré hacerlo poniendo esto:

imm = (InputMethodManager) EditDialog.this.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS);

en mi onCreate () del cuadro de diálogo personalizado y

imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

en mi despedida () .

Esto abre los teclados una vez que aparece el cuadro de diálogo y también cierra el teclado una vez que presiono el botón "Aceptar".

Sin embargo, si el Soft Keyboard está abierto y presiono el botón HOME de mi teléfono / emulador, el teclado permanecerá abierto, ya que, pensé, lo forcé con SHOW_FORCED. Por lo tanto, traté de ocultar (utilizando toggleSoftInput () desde InputMethodManager) el teclado si está abierto en el método de actividad padre del diálogo onPause (). esto parece ser posible usando una solución, como se ve AQUÍ .

TL; DR : Quiero que se muestre el teclado virtual cuando aparezca mi cuadro de diálogo con un texto de edición y un botón (céntrese en EditText). Lo conseguí, pero implicaba escribir muchos hacks para cerrarlo correctamente.

Editar : Basé mi código en ESTE


@Override public void onResume() { super.onResume(); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { try { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInputFromWindow(view.getWindowToken(), InputMethodManager.SHOW_FORCED, 0); } catch (Exception e) { } } }, 300); }

Y "ver" de tipo EditTextView. "contexto" es Contexto actual.

Wish puede ayudarte.


editTextProjectName.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editTextProjectName, InputMethodManager.SHOW_IMPLICIT);