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.
- Listín de eventos de Softkeyboard en Android
- Evitar que el teclado suave se deseche
- ¿Cómo puedo detectar si el teclado del software es visible en el dispositivo Android?
- Cambiar el método de entrada del dispositivo android android programatically
- ¿Cómo desactivar el teclado suave de Android para una actividad en particular?
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
- Comience un teclado diferente para diferentes actividades
- Cómo establecer / llamar a un nuevo método de entrada en Android
- No se puede ocultar el teclado virtual de Android incluso con el controlador de entrada
- Cambiar el idioma de KeyBoard de Android
- Webview html formulario de entrada no mostrar / permitir el teclado
- Ocultar teclado suave después del diálogo
- Problemas con la entrada de teclado de accesibilidad en Android con React Native
- La aplicación de Android no se actualiza después de ocultar el teclado virtual
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);
- ANDROID: ¿Cómo puedo descargar un archivo de vídeo a una tarjeta SD?
- Android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" funciona en nivel de aplicación pero no en el nivel de actividad. ¿Cualquier pista?