Cómo configurar la visibilidad del teclado blando de Android

Tengo un EditText y un Button en mi diseño.

Después de escribir en el campo de edición y hacer clic en el Botón, quiero ocultar el teclado virtual. Supongo que esto es un simple trozo de código, pero ¿dónde puedo encontrar un ejemplo de ello?

Puedes forzar a Android a ocultar el teclado virtual usando el InputMethodManager, llamando a hideSoftInputFromWindow, pasando el token de la ventana que contiene tu vista enfocada.

// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {  
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

Esto obligará a ocultar el teclado en todas las situaciones. En algunos casos querrás pasar InputMethodManager.HIDE_IMPLICIT_ONLY como segundo parámetro para asegurarte de que sólo ocultas el teclado cuando el usuario no lo ha forzado explícitamente a aparecer (manteniendo pulsado el menú).

Nota: Si quieres hacer esto en Kotlin, utiliza context?.getSystemService(Context.INPUT_METHOD_SERVICE) como InputMethodManager.

**Sintaxis de Kotlin

// Check if no view has focus:
 val view = this.currentFocus
 view?.let { v ->
  val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager 
  imm?.hideSoftInputFromWindow(v.windowToken, 0)
 }
Comentarios (34)

También es útil para ocultar el teclado de la pantalla:

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

Esto se puede utilizar para suprimir el teclado virtual hasta que el usuario toque la vista de edición de texto.

Comentarios (13)

Por favor, pruebe el siguiente código en onCreate().

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue);
edtView.setInputType(0);
Comentarios (6)