2010-10-04 12 views
11

Necesito poder ocultar el teclado virtual en respuesta a hacer clic en un botón. He visto numerosas publicaciones sobre este tema y parece que la solución es usar el InputMethodManager, pero no he podido hacer que funcione para mí. Se supone que el siguiente, se oculta el teclado en pantalla:Hide Soft Keyboard

InputMethodManager inputManager = (InputMethodManager) 
     getSystemService(INPUT_METHOD_SERVICE); 

    inputManager.hideSoftInputFromInputMethod(editView.getWindowToken(), 0); 

Sin embargo, esto no está funcionando para mí (? Quién podrá sugerir por qué), e incluso si lo hiciera, yo quiero ser capaz de ocultar el teclado, independientemente de lo view tiene la entrada, y puede que no sepa qué vista es esa.

me encontré con que la llamada:

inputManager.toggleSoftInput(0, 0); 

se oculta el teclado si se está mostrando actualmente. Lamentablemente, también lo mostrará si está oculto. Para que esto funcione para mí, necesitaría una forma de determinar si actualmente está visible.

¿Alguna idea?

Gracias

Respuesta

23

Es posible que desee probar:

InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
inputManager.hideSoftInputFromWindow(editView.getWindowToken(), 0); 
+1

Bueno, duh! Creo que ayudaría si llamara a la función correcta. Gracias. –