ShowDialog-Problem innerhalb der Aktivität mit Registerkarten
-
14-11-2019 - |
Frage
Ich habe einen Tabhost mit 2 Registerkarten in meiner Hauptaktivität, für die 2. Registerkarte habe ich eine Listenansichtsabsicht als Inhalt hinzugefügt.Alles funktioniert gut.Jetzt habe ich überschrieben onCreateDialog()
methode in der Listenansicht (2. Registerkarte), als ich einen Anruf getätigt habe showDialog(MY_DIALOG);
Methode onCreateDialog()
wird angerufen, aber ich bekomme eine Warnung im LogCat wie
"WARN/InputManagerService(58): Window already focused, ignoring
focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44ee6948"
Kann mir jemand helfen, wie man das Dialogfeld in der Aktivität von Tabhost anzeigt.
//bearbeiten
protected Dialog onCreateDialog(int id) {
Log.v(Constants.LOGTAG, " " +CLASSTAG+ " onCreateDialog(): +++ START +++");
AlertDialog.Builder builder = new AlertDialog.Builder(this);
switch (id) {
case DIALOG_MY_TYPES: {
Log.v(Constants.LOGTAG, " " +CLASSTAG+ " onCreateDialog(): DIALOG_MY_TYPES");
CharSequence[] items = {"option1", "option2", "option3"};
builder.setTitle("Select").setItems(items,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Log.d(CLASSTAG, "item selected = " + item);
dialog.cancel();
}
}).setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Log.d(Constants.LOGTAG, " "+CLASSTAG+" Cancel button is clicked");
dialog.cancel();
}
});
}
}//switch
alert = builder.create();
Log.v(Constants.LOGTAG, " " +CLASSTAG+ " onCreateDialog(): +++ END +++");
return super.onCreateDialog(id);
}
Danke im Voraus.-Nehatha
Lösung
Ändern return super.onCreateDialog(id);
zu return alert;
.Ich gehe davon aus, dass ein anderer Teil Ihrer Aktivität ShowDialog(int) aufruft.Wenn nicht, möchten Sie dies entweder tun oder die show-Methode im zurückgegebenen Dialogfeld von onCreateDialog (id) aufrufen.