J'ai un EditText
et un Button
dans ma mise en page.
Après avoir écrit dans le champ d'édition et cliqué sur le bouton, je veux masquer le clavier virtuel. Je suppose qu'il s'agit d'un simple morceau de code, mais où puis-je en trouver un exemple ?
Vous pouvez forcer Android à masquer le clavier virtuel en utilisant le [InputMethodManager][1], en appelant [hideSoftInputFromWindow
][2], en passant le token de la fenêtre contenant votre vue focalisée.
// 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);
}
Cela forcera le clavier à être caché dans toutes les situations. Dans certains cas, vous voudrez passer InputMethodManager.HIDE_IMPLICIT_ONLY
comme second paramètre pour vous assurer que vous ne cachez le clavier que lorsque l'utilisateur ne l'a pas explicitement forcé à apparaître (en maintenant le menu enfoncé).
Note: Si vous voulez faire cela en Kotlin, utilisez :
context ?.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
Syntaxe 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)
}
[1] : http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html [2] : http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#hideSoftInputFromWindow%28android.os.IBinder,%20int%29
Il est également utile pour masquer le clavier logiciel :
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
Cette option peut être utilisée pour supprimer le clavier virtuel jusqu'à ce que l'utilisateur touche effectivement la fenêtre d'édition de texte.