Android: Ocultar el teclado después de hacer clic en el botón

Necesito ocultar el teclado de Android después de un clic de botón.

He visto muchos ejemplos de cómo hacer esto, sin embargo, todos ellos parecen utilizar un objeto específico editText.

p.ej

InputMethodManager imm = (InputMethodManager)getSystemService( Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

Mi problema es que estoy construyendo la pantalla de forma dinámica, por lo tanto, podría haber mane editar campos de texto. ¿Hay una manera de que el teclado se puede ocultar sin que tenga que especificar qué objeto editText estoy ocultándolo.

Gracias

Martín

En su lugar, puede configurarlo en su diseño, es decir:

 LinearLayout mainLayout; // Get your layout set up, this is just an example mainLayout = (LinearLayout)findViewById(R.id.myLinearLayout); // Then just use the following: InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mainLayout.getWindowToken(), 0); 

Este es un ejemplo suponiendo que su diseño se creará independientemente de cuántos objetos EditText (u otros objetos) se colocan en él.

Editar: Además, algo que me parece muy útil es asegurarse de que el teclado está oculto cuando se inicia una actividad por primera vez (es decir: si un EditText es lo primero que se enfoca). Para ello, pongo esto en onCreate() método de Actividad:

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

No se olvide de usar try catch blog, porque en caso de que su teclado no se abra y si se utiliza clave de la placa ocultar la aplicación de código se bloqueará

 try { InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); } catch (Exception e) { // TODO: handle exception } 

Puede ocultar el teclado utilizando el siguiente código, probablemente en el botón haga clic en Evento:

 //================ Hide Virtual Key Board When Clicking==================// InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow("Your Button/EditText Object".getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); //======== Hide Virtual Keyboard =====================// 

Referencia

Usted utiliza este código

 // 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); } 

Si el problema está en una actividad simplemente lo siguiente funcionará:

  try { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); } catch (Exception e) { // TODO: handle exception } 

Else si el código es requerido en un fragmento haga lo siguiente

  try { InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0); } catch (Exception e) { // TODO: handle exception } 

Esto manejará la ocultación del teclado en un clic de botón o cualquier otro evento que se considere específico cuando se escribe dentro del bloque de eventos.

 InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(rootView.getWindowToken(), 0); 
  • Cómo utilizar Diccionario (como iphone NSDictionary) en android?
  • Teclado duro No se puede enfocar editText
  • Diccionario personalizado (no teclado) para aplicaciones de Android
  • ¿Cómo desactivo la barra de autocorrección en los teclados de Android?
  • Mostrar sólo el teclado numérico en la aplicación Ionic / Cordova
  • Desvío del teclado Android
  • Ocultar teclado al navegar de un fragmento a otro
  • PhoneGap: ¿Hay una manera de detener el teclado de cambiar el tamaño de la vista?
  • Disposición de teclado personalizada de Android dejando un margen de blanco en el lateral
  • Android IME: cómo mostrar un cuadro de diálogo emergente?
  • Android: ¿Cómo hacer que el teclado siempre sea visible?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.