J'ai un Activity
avec un EditText
, un bouton et un ListView
. Le but est de saisir un écran de recherche dans le EditText
, appuyez sur le bouton et que les résultats de la recherche remplissent cette liste.
Tout cela fonctionne parfaitement, mais le clavier virtuel se comporte de manière étrange.
Si je clique sur EditText
, j'obtiens le clavier virtuel. Si je clique sur le bouton «Terminé» du clavier virtuel, il disparaît. Cependant, si je clique sur mon bouton de recherche avant de cliquer sur "Terminé" sur le clavier virtuel, le clavier virtuel reste et je ne peux pas m'en débarrasser. Cliquer sur le bouton "Terminé" ne ferme pas le clavier. Il change le bouton «Terminé» de «Terminé» en flèche et reste visible.
Merci de votre aide
la source
inputManager.hideSoftInputFromWindow((null == getCurrentFocus()) ? null : getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
la source
Utilisez le code ci-dessous
la source
Vous devez implémenter
OnEditorActionListener
pour votre EditViewEt vous masquez le clavier par:
Vous devez également déclencher le clavier caché dans votre bouton en utilisant
onClickListener
Maintenant, cliquer sur «Terminé» sur le clavier virtuel et le bouton fera de même - masquer le clavier et effectuer une action de clic.
la source
TextView.OnEditorActionListener
.Ajoutez le code suivant dans votre événement de clic de bouton:
la source
Étant donné que vous n'avez qu'un seul texte d'édition, appelez simplement l'action effectuée pour ce texte d'édition à l'intérieur de votre bouton et le reste est géré par le système. Si vous aviez plus d'un edittext, ce ne serait pas aussi efficace car vous devez d'abord obtenir l'edittext ciblé. Mais dans votre cas, cela fonctionnera parfaitement
la source
Pour l'activité,
Pour les fragments, utilisez getActivity ()
getActivity (). getSystemService ();
getActivity (). getCurrentFocus ();
la source
Cette solution fonctionne parfaitement pour moi:
la source
Essaye ça...
Pour afficher le clavier
Pour masquer le clavier
la source
la source
Exemple de Kotlin:
à partir du fragment:
de l'activité:
la source
Vous utilisez ce code dans votre événement de clic de bouton
la source
Correction d'exception Crash Null Point: J'ai eu un cas où le clavier pouvait ne pas s'ouvrir lorsque l'utilisateur cliquait sur le bouton. Vous devez écrire une instruction if pour vérifier que getCurrentFocus () n'est pas une valeur nulle:
la source
Si vous définissez
android:singleLine="true"
, le bouton masque automatiquement le clavier ¡la source