Ich habe eine Activity
mit einem EditText
, einem Knopf und einem ListView
. Der Zweck besteht darin, einen Suchbildschirm in das EditText
Feld einzugeben, die Taste zu drücken und die Suchergebnisse in diese Liste aufzunehmen.
Das alles funktioniert perfekt, aber die virtuelle Tastatur verhält sich seltsam.
Wenn ich auf klicke EditText
, erhalte ich die virtuelle Tastatur. Wenn ich auf der virtuellen Tastatur auf die Schaltfläche "Fertig" klicke, wird sie ausgeblendet. Wenn ich jedoch auf meine Suchschaltfläche klicke, bevor ich auf der virtuellen Tastatur auf "Fertig" klicke, bleibt die virtuelle Tastatur erhalten und ich kann sie nicht entfernen. Durch Klicken auf die Schaltfläche "Fertig" wird die Tastatur nicht geschlossen. Es ändert die Schaltfläche "Fertig" von "Fertig" in einen Pfeil und bleibt sichtbar.
Danke für Ihre Hilfe
quelle
inputManager.hideSoftInputFromWindow((null == getCurrentFocus()) ? null : getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
quelle
Verwenden Sie den folgenden Code
quelle
Sie sollten
OnEditorActionListener
für Ihre EditView implementierenUnd Sie verstecken die Tastatur durch:
Sie sollten auch die Tastatur auslösen, die sich in Ihrer Schaltfläche versteckt
onClickListener
Wenn Sie nun auf der virtuellen Tastatur und der Schaltfläche auf "Fertig" klicken, wird das Gleiche getan - die Tastatur ausblenden und die Klickaktion ausführen.
quelle
TextView.OnEditorActionListener
.Fügen Sie den folgenden Code in Ihr Button-Click-Ereignis ein:
quelle
Da Sie nur einen Bearbeitungstext haben, rufen Sie einfach die Aktion auf, die für diesen Bearbeitungstext in Ihrem Schaltflächenklick ausgeführt wurde, und der Rest wird vom System erledigt. Wenn Sie mehr als einen Edittext hätten, wäre dies nicht so effizient, da Sie zuerst den fokussierten Edittext erhalten müssen. Aber in Ihrem Fall wird es perfekt funktionieren
quelle
Für Aktivität,
Verwenden Sie für Fragmente getActivity ()
getActivity (). getSystemService ();
getActivity (). getCurrentFocus ();
quelle
Diese Lösung funktioniert perfekt für mich:
quelle
Versuche dies...
Zum Anzeigen der Tastatur
Zum Ausblenden der Tastatur
quelle
quelle
Kotlin Beispiel:
aus Fragment:
von Aktivität:
quelle
Sie verwenden diesen Code in Ihrem Button-Click-Ereignis
quelle
Crash Null Point Exception Fix: Ich hatte einen Fall, in dem die Tastatur möglicherweise nicht geöffnet werden konnte, wenn der Benutzer auf die Schaltfläche klickt. Sie müssen eine if-Anweisung schreiben, um zu überprüfen, ob getCurrentFocus () keine Null ist:
quelle
Wenn Sie einstellen
android:singleLine="true"
, verbirgt die Taste automatisch die Tastatur.quelle