it-swarm.com.de

Zeigen Sie die Soft-Tastatur an, wenn Aktivität gestartet wird

Ich habe zwei Aktivitäten, A und B. Wenn A gestartet wird, wird nach einer Bedingung gesucht. Wenn dies der Fall ist, wird zum Starten von B startActivityForResult() aufgerufen. B nimmt nur eine Texteingabe vor, sodass die Soft-Tastatur beim Start von B automatisch angezeigt wird. Wenn die Aktivität beginnt, hat der EditText bereits den Fokus und ist zur Eingabe bereit. 

Das Problem ist, dass die Tastatur nie angezeigt wird, selbst wenn windowSoftInputMode="stateAlwaysVisible" im Manifest unter dem <activity>-Tag für B festgelegt ist. Ich habe auch versucht, den Wert auf stateVisible zu setzen. Da es nicht automatisch angezeigt wird, muss ich auf den EditText tippen, damit er angezeigt wird. 

Weiß jemand, was die Lösung sein könnte?

47
Al.

Was für mich am besten funktioniert hat, ist in Android Manifest für das Hinzufügen von Aktivität B. 

Android:windowSoftInputMode="stateVisible"

Ich hoffe, das hilft auch Ihnen.

89
Leo

Einfachste Lösung: Put 

Android:windowSoftInputMode = "stateVisible" 

im Aktivitätsabschnitt von AndroidManifest.xml

18

Wenn requestFocus für einen EditText nicht angezeigt wird, führt dies möglicherweise Folgendes aus:

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, 0);

Siehe hier für weitere Informationen.

13
synic

Für mich funktionierten nur diese Lösungen: Manifest für diese Aktivität hinzufügen:

Android:windowSoftInputMode="stateVisible|adjustPan"
11
Paul

Versuchen Sie, die Tastatur mit einiger Verzögerung anzuzeigen. Etwas Ähnliches:

public void onResume() {
    super.onResume();

    TimerTask tt = new TimerTask() {

        @Override
        public void run() {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(yourTextBox, InputMethodManager.SHOW_IMPLICIT);
        }
    };

    final Timer timer = new Timer();
    timer.schedule(tt, 200);
}
5
whlk

Wenn Sie einen Emulator verwenden, müssen Sie die harte Tastatur ausschalten, damit die Soft-Tastatur angezeigt wird.

2
Chad Hedgcock

Datei: AndroidManifest.xml

<activity Android:name=".MainActivity">

Fügen Sie folgende Eigenschaft hinzu:

Android:windowSoftInputMode="stateVisible"

Was für mich gearbeitet hat.

1
Keyur Sureliya

Ich habe zwei Wege.

Methode 1. Verwenden Sie den folgenden Code innerhalb der OnCreate-Methode

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Es verhindert das Aufklappen der Tastatur, wenn Sie nicht auf klicken.

oder 

Methode 2 Sie können den Fokus auf andere Ansichten wie TextView verschieben, indem Sie "requestfocus" in der XML-Datei verwenden.

<TextView
            Android:id="@+id/year_birth_day"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:layout_weight="1"
            Android:text="1991">            
           <requestFocus />
           </TextView>

Methode 3 (Ich denke, es sollte vermeidbar sein) Verwendung des folgenden Codes im Manifest

Android:windowSoftInputMode="stateVisible"
1
abc

füge dies nach setContentView ein

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
0
Ashwini