Ich bin neu in Android. Ich habe bereits zwei Stunden für die Suche aufgewendet. Was auch immer ich versuche, Softkeyboard wird für meine nie gezeigt EditText
. Ich erstelle es einfach:
EditText editText = (EditText)findViewById(R.id.editText);
Ich habe es versucht:
editText.requestFocus();//i tried without this line too
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
und:
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus)
{
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
});
Ich habe auch versucht:
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
Ich habe versucht, diese Zeile in eine AndroidManifest.xml
Datei zu setzen:
android:windowSoftInputMode="stateVisible|adjustResize"
aber alles umsonst. Es zeigt sich einfach nie. Was vermisse ich?
Antworten:
Sie müssen sicherstellen, dass Ihr Emulator nicht für die Verwendung einer Hardwaretastatur eingestellt ist . Dies kann durch Auswahl
Edit
eines ausgewählten Emulators in der AVD erfolgen. Dann deaktivieren Sie dieHardware keyboard present
Einstellung.Sie können auch versuchen, einen anderen Emulator wie Genymotion zu verwenden . Es unterstützt die vollständige Hardwarebeschleunigung (Multi-Core-CPU sowie GPU) und läuft viel schneller als alle Android-Emulator-Images. Wenn Sie Genymotion verwenden, müssen Sie die Hardwaretastatur in Android deaktivieren (Details siehe unten).
So deaktivieren Sie die Hardwaretastatur in Genymotion:
Gehen Sie zu
Settings
->Language & input
und öffnen Sie dasDefault
Element unterKeyboard & Input Methods
. Es gibt eineHardware
Einstellung, die Sie ein- und ausschalten können. Wenn es auf verwenden Sie Ihre physische Tastatur und wenn es aus dem Standard - Soft - Tastatur sollte Pop-up , wenn ein Textfeld den Fokus erhält.Screenshots für Genymotion-Einstellungen:
quelle
Klicken Sie in Version 2.1.1 auf die Einstellungen Ihres virtuellen Geräts und aktivieren Sie das Kontrollkästchen "Virtuelle Tastatur zum Tippen verwenden".
quelle
In AS 1.1.0 gibt es zwei Stellen, an denen die Auswahl der Hardwaretastatur aufgehoben werden kann. Dieser ist nicht ausreichend:
Muss dies tun (klicken
Tools | Android | AVD Manager
; dann neue AVD erstellen oder alte AVD bearbeiten und dann klickenShow Advanced Settings
; nach unten scrollen und löschenEnable keyboard input
):quelle
Die Methode zum Aktivieren der Bildschirm-Softtastatur für Android Studio 2+ -Emulatoren hängt von der API-Ebene des Emulators ab. Ich habe die verschiedenen Methoden beginnend mit API 15 getestet und die folgenden Schritte aufgezeichnet.
[A] APIs 15, 17, 19 und 21.
Die folgenden Schritte aktivieren die Softtastatur auf dem Bildschirm, deaktivieren jedoch die Möglichkeit, Text einzugeben und über die Hardware-Computertastatur mit der AVD zu interagieren.
[B] API 22
Die Softtastatur wird angezeigt, unabhängig davon, was Sie mit den Hardwaretastatureinstellungen tun. Wenn Sie die Unterstützung von Hardwaretastaturen neben der Softtastatur aktivieren möchten,
[C] API 23
Wenn Sie die Hardware und die Softtastatur verwenden möchten, dann ...
Wenn Sie die Hardwaretastatur nicht benötigen, deaktivieren Sie in den erweiterten AVD-Einstellungen die Option "Tastatureingabe aktivieren". Sie müssen keine Einstellungen auf dem virtuellen Gerät ändern.
[D] APIs 24 und 25
Wenn in der AVD die Option Tastatureingabe aktivieren ausgewählt wurde, können Sie jetzt sowohl harte als auch weiche Tastatureingaben verwenden. Wenn Sie die Option in der AVD deaktiviert haben, wird die Softtastatur unabhängig davon angezeigt.
[E] API 26
Genau wie die [D] APIs 24 und 25, außer dass Sie in den Geräteeinstellungen durch eine zusätzliche Menüebene "System" navigieren müssen, bevor Sie zu Sprache und Eingabe / Physische Tastatur gelangen
quelle
Möglicherweise unterstützt Ihr Emulator kein Softkeyboard.
Fügen Sie eine Hardwareeigenschaft für die Tastaturunterstützung hinzu und setzen Sie sie für Ihren Emulator auf true.
Wenn es bereits wahr ist, überprüfen Sie diese Antwort.
quelle
Zeigen:
Und um sich zu verstecken:
Probieren Sie es einfach aus ...
quelle