2010-10-04 6 views
11

Je dois pouvoir masquer le clavier logiciel en réponse à un clic sur un bouton. J'ai vu de nombreux messages sur ce sujet et il semble que la solution est d'utiliser le InputMethodManager, mais j'ai été incapable de le faire fonctionner pour moi. Soi-disant ce qui suit va masquer le clavier souple:Masquer le clavier logiciel

InputMethodManager inputManager = (InputMethodManager) 
     getSystemService(INPUT_METHOD_SERVICE); 

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

Cependant, cela ne fonctionne pas pour moi (? Peut tout expliquer pourquoi), et même si elle l'a fait, je veux être en mesure de cacher le clavier indépendamment de ce que la vue a l'entrée, et je ne peux pas savoir quelle vue c'est.

Je trouve que l'appel:

inputManager.toggleSoftInput(0, 0); 

va masquer le clavier si elle est en cours d'affichage. Malheureusement, il le montrera également s'il est actuellement caché. Donc, pour que cela fonctionne pour moi, j'aurais besoin d'un moyen de déterminer si elle est actuellement visible.

Des idées?

Merci

Répondre

23

Vous pouvez essayer:

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

Eh bien, duh! Je suppose que cela aiderait si j'appelais la fonction correcte. Merci. –

Questions connexes