Ich zeige einen Dialog mit einer Edittext-Ansicht an. Das Softkeyboard wird jedoch nur geöffnet, wenn der Benutzer in der Bearbeitungsansicht drückt. Also habe ich versucht, einen InputMethodManager mit dem folgenden Code aufzurufen.
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(dialogField,0);
Das dialogField ist das Eingabefeld. Wann genau soll ich das tun? Ich habe es in der onStart () -Methode des Dialogfelds versucht, aber es passiert nichts. Ich habe auch versucht, den Fokus für das dialogField anzufordern, aber das ändert nichts.
Ich habe auch diesen Code ausprobiert
dialogField.setOnFocusChangeListener(new View.OnFocusChangeListener()
{
public void onFocusChange (View v, boolean hasFocus)
{
if (hasFocus)
{
Main.log("here");
dialogInput.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
/*
InputMethodManager mgr =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(dialogField,0);
*/
}
}
});
in beiden Versionen. Es möchte aber keine Softtastatur erscheinen. Das Main.log ist nur ein Protokoll, das mir zeigt, dass die Funktion tatsächlich aufgerufen wird. Und ja, es heißt.
Ich könnte die Tastatur mit dem SHOW_FORCED-Flag erhalten, bevor der Dialog geöffnet wird. Aber dann wird es beim Verlassen nicht geschlossen. Und das kann ich nur, bevor ich den Dialog zeige. In Rückrufen funktioniert es auch nicht.