Ich habe ein Layout, das einige Ansichten wie diese enthält:
<LinearLayout>
<TextView...>
<TextView...>
<ImageView ...>
<EditText...>
<Button...>
</linearLayout>
Wie kann ich den Fokus (Anzeige der Tastatur) EditText
programmgesteuert einstellen ?
Ich habe es versucht und es funktioniert nur, wenn ich es Activity
normal starte, aber wenn ich es in a TabHost
starte, funktioniert es nicht.
txtSearch.setFocusableInTouchMode(true);
txtSearch.setFocusable(true);
txtSearch.requestFocus();
android
focus
android-edittext
Houcine
quelle
quelle
Antworten:
Versuche dies:
http://developer.android.com/reference/android/view/View.html#requestFocus ()
quelle
verwenden:
quelle
View
Unterklasse)imm.showSoftInput()
funktioniert nicht.Das hat bei mir funktioniert, dank ungalcrys
Tastatur anzeigen:
Tastatur ausblenden:
quelle
showSoftInput
arbeitete überhaupt nicht für mich.Ich dachte, ich müsste den Eingabemodus einstellen:
android:windowSoftInputMode="stateVisible"
(hier in der Aktivitätskomponente im Manifest)Ich hoffe das hilft!
quelle
quelle
tb.post({ showKeyboard(tb) })
). Beachten Sie, dass wir eine EditText-Ansicht (tb
) benötigen , keine Fragmentansicht.So kann eine Kotlin-Erweiterung zum Ein- und Ausblenden der Softtastatur erstellt werden:
Dann können Sie einfach Folgendes tun:
quelle
Ich empfehle die Verwendung eines LifecycleObservers, der Teil der Behandlung von Lebenszyklen mit lebenszyklusbewussten Komponenten von Android Jetpack ist .
Ich möchte die Tastatur öffnen und schließen, wenn das Fragment / die Aktivität angezeigt wird. Definieren Sie zunächst zwei Erweiterungsfunktionen für den EditText. Sie können sie an einer beliebigen Stelle in Ihrem Projekt platzieren:
Definieren Sie dann einen LifecycleObserver, der die Tastatur öffnet und schließt, wenn die Aktivität / das Fragment erreicht
onResume()
oderonPause
:Fügen Sie dann die folgende Zeile zu Ihren Fragmenten / Aktivitäten hinzu. Sie können den LifecycleObserver jederzeit wiederverwenden. ZB für ein Fragment:
quelle
Hier ist die KeyboardHelper-Klasse zum Ausblenden und Anzeigen der Tastatur
}}
quelle
Erster Weg :
Zweiter Weg :
Im Manifest:
In Code:
quelle
Ich habe viele Möglichkeiten ausprobiert und es funktioniert nicht, aber ich bin mir nicht sicher, weil ich den gemeinsamen Übergang vom Fragment zur Aktivität verwende, die den Bearbeitungstext enthält.
Übrigens ist mein Edittext auch in LinearLayout eingeschlossen.
Ich habe eine leichte Verzögerung hinzugefügt, um den Fokus anzufordern, und der folgende Code hat für mich funktioniert: (Kotlin)
showKeyboard ()
quelle
quelle
Ich konnte keine dieser Antworten dazu bringen, alleine zu arbeiten. Die Lösung für mich war, sie zu kombinieren:
Ich bin mir nicht sicher, warum das für mich erforderlich war - laut den Dokumenten scheint es, dass beide Methoden für sich hätten funktionieren müssen.
quelle