Beide Methoden verwenden die EditText-Ansicht, aber ich habe sie nicht. Ich habe kein EditText. Es ist ein Dialog in meiner SettingsActivity. Wenn es geschlossen ist, wird die Tastatur angezeigt 🙁
– Dmytro Zaresenko
25. Juli 2012 um 12:14 Uhr
Wenn Ihre Tastatur in einem Dialog auftaucht, bedeutet dies, dass Ihr Dialog einen EditText enthalten muss. Sie können also den obigen Code schreiben, indem Sie das Fenster-Token Ihres EditText übergeben und dann dialog.dismiss() aufrufen.
– AndroidGuy
26. Juli 2012 um 13:01 Uhr
oder wenn es nicht der obige Fall ist.. bedeutet, wenn Edittext nicht in Ihrem Dialog ist, müssen Sie überprüfen, für welchen EditText es auftaucht und ihn ausblenden, bevor Sie den Dialog anzeigen. Wenn dies auch nicht funktioniert, poste bitte deinen Code.
– AndroidGuy
26. Juli 2012 um 13:40 Uhr
Rajeshwar
Im XML-Manifest
android:windowSoftInputMode="stateAlwaysHidden"
Beim Schließen von wird die Soft-Tastatur automatisch ausgeblendet Dialog
Dies sollte die akzeptierte Antwort sein! Es ist eine schlechte Vorgehensweise, in AndroidManifest.xml deklarierte Eigenschaften zu überschreiben
– Renjith
15. Juli 2015 um 14:08 Uhr
@Renjith kannst du bitte erläutern, warum es schlecht ist
– Rajeshwar
27. August 2015 um 9:45 Uhr
es hat bei mir nicht funktioniert, aber das Verstecken von edittext (edittext in dialog) und dialog.dismiss hat den Job gemacht
– Narren
3. September 2015 um 10:34 Uhr
@SeshuVinay, ich bin nur ein bescheidener Ingenieur, aber wenn mich mal anrufen, werde ich zu Batman 🙂 Pass auf dich auf, Kumpel ! 🙂
– Narren
8. Februar 2016 um 10:26 Uhr
Wow, 2 Stunden meines Lebens sind vorbei, danke Android: D
– Daniel Wilson
13. November 2018 um 16:11 Uhr
NordicShaw
Ich bin auf das gleiche Problem gestoßen. Habe es so gelöst. Es braucht keine Referenz:
Es hat endlich funktioniert, nachdem ich zu viele Lösungen ausprobiert hatte. Das Schöne ist, dass es keine Ansicht benötigt und seinen Fokus überprüft.
– Ravi Yadav
30. Januar 2020 um 6:41 Uhr
Sie sollten jedoch prüfen, ob der Fokus vorhanden ist, andernfalls wird die Tastatur angezeigt, wenn er ausgeblendet ist
– Madina Saidova
5. März 2020 um 6:37 Uhr
Yusuf Yaşar
protected void hideKeyboard() {
final Activity activity = getActivity();
final View view = activity != null ? activity.getCurrentFocus() : null;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (view != null) {
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null)
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
}, 1);
}
@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
hideKeyboard();
}
Es hat endlich funktioniert, nachdem ich zu viele Lösungen ausprobiert hatte. Das Schöne ist, dass es keine Ansicht benötigt und seinen Fokus überprüft.
– Ravi Yadav
30. Januar 2020 um 6:41 Uhr
Sie sollten jedoch prüfen, ob der Fokus vorhanden ist, andernfalls wird die Tastatur angezeigt, wenn er ausgeblendet ist
– Madina Saidova
5. März 2020 um 6:37 Uhr
ZygD
All diese Ratschläge zu verwenden InputMethodManager sind etwas vage – wo genau soll man es nennen, und sie funktionieren zumindest bei mir nicht.
Ja, Tastatur verschwindet, aber dann stürzt die App ab!?
Das Hauptproblem besteht darin, dass das Ausblenden der Tastatur gleichzeitig mit dem Verschwinden des Dialogs erfolgt.
Um es zu vermeiden dialog.dismiss() einberufen werden soll view.postDelayed() nach imm.hideSoftInputFromWindow() und in meinem Fall habe ich die Verzögerung auf 150 eingestellt.
10744200cookie-checkSoft-Tastatur nach Schließen des Dialogs ausblendenyes
Hier finden Sie eine Lösung: workingfromhere.com/blog/2011/04/27/… ODER hier: stackoverflow.com/questions/1109022/…
– AndroidGuy
25. Juli 2012 um 8:54 Uhr
Beide Methoden verwenden die EditText-Ansicht, aber ich habe sie nicht. Ich habe kein EditText. Es ist ein Dialog in meiner SettingsActivity. Wenn es geschlossen ist, wird die Tastatur angezeigt 🙁
– Dmytro Zaresenko
25. Juli 2012 um 12:14 Uhr
Wenn Ihre Tastatur in einem Dialog auftaucht, bedeutet dies, dass Ihr Dialog einen EditText enthalten muss. Sie können also den obigen Code schreiben, indem Sie das Fenster-Token Ihres EditText übergeben und dann dialog.dismiss() aufrufen.
– AndroidGuy
26. Juli 2012 um 13:01 Uhr
oder wenn es nicht der obige Fall ist.. bedeutet, wenn Edittext nicht in Ihrem Dialog ist, müssen Sie überprüfen, für welchen EditText es auftaucht und ihn ausblenden, bevor Sie den Dialog anzeigen. Wenn dies auch nicht funktioniert, poste bitte deinen Code.
– AndroidGuy
26. Juli 2012 um 13:40 Uhr