/ / Kann ich die Soft-Tastatur ohne EditText verwenden? - Android, Android-Editiertext, Android-Softkeyboard

Kann ich die Soft-Tastatur ohne EditText verwenden? - Android, Android-Editiertext, Android-Softkeyboard

Ich erstelle ein einfaches Tippspiel in Android. Ich habe kein Problem damit, Eingaben von der physischen Tastatur zu bekommen, aber jetzt versuche ich, die Soft-Tastatur ohne EditText erscheinen zu lassen. Bisher habe ich folgendes versucht:

1. EditText mit Sichtbarkeit = "unsichtbar" und diese Zeile:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(keyboard_edittext, InputMethodManager.SHOW_FORCED); // SHOW_IMPLICIT also failed

2. Diese Linie in der onCreate():

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

Diese Methode zeigte tatsächlich ein leeres weißes Feld über den unteren 10% des Bildschirms, aber nicht die Tastatur, obwohl, wenn ich es jetzt führe es nichts tut.

3. Weitere zwei Zeilen in der onCreate():

InputMethodManager m = (InputMethodManager)this.getSystemService (Context.INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.SHOW_IMPLICIT);

Kein Glück bei diesen. Ist es sogar möglich, die Soft-Tastatur anzuzeigen (und dann zu verwenden) onKeyUp/onKeyDown) ohne auf einen EditText zu fokussieren?

Im Moment ist der einzige Weg, den ich sehen kann, der Ansatz, eine eigene Implementierung der Soft-Tastatur zu erstellen (d. H. Von Grund auf neu zu erstellen). Freue mich nicht darauf!

Antworten:

4 für die Antwort № 1

Der folgende Code funktioniert für mich:

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

Ich benutze diesen Code in einem onKeyUp-Handler, wenn ich die "Menü" -Taste drücke.


3 für die Antwort № 2

Anstatt zu verwenden visibility="invisible" Sie können einstellen android:alpha="0" auf deinem EditText. Sie brauchen also noch einen EditText, der aber nicht sichtbar ist und Sie können die Eingabe von der Softkeyleiste mit einem onKeyListener()


2 für die Antwort № 3

Sie können erzwingen, dass das Softkeyboard angezeigt wird:


InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);


2 für die Antwort № 4

Stellen Sie sicher, dass Sie die Softtastatur für Ihre Ansicht aktivieren:

setFocusable(true);
setFocusableInTouchMode(true);

Dann ruf an:

InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT);

1 für die Antwort № 5

Beachten Sie, dass wenn Sie im Querformat arbeiten, der Soft-Eingang ein eigenes Texteingabefeld erstellt, das Ihre ganze Arbeit ruiniert. Sie können dieses Verhalten verhindern:

// This makes us remain invisible when in landscape mode.
setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);

Wenn Sie jetzt einen unsichtbaren EditText eingerichtet haben, bleibt er so wie Sie ihn gemacht haben.