Ich versuche, ein Dialogfenster zu öffnen, aber jedes Mal, wenn ich versuche, es zu öffnen, wird folgende Ausnahme ausgelöst:
Uncaught handler: thread main exiting due to uncaught exception
android.view.WindowManager$BadTokenException:
Unable to add window -- token null is not for an application
at android.view.ViewRoot.setView(ViewRoot.java:460)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.app.Dialog.show(Dialog.java:238)
at android.app.Activity.showDialog(Activity.java:2413)
Ich erstelle es, indem ich showDialog
mit der ID des Displays anrufe. Der onCreateDialog
Handler protokolliert einwandfrei und ich kann ihn problemlos durchgehen, aber ich habe ihn angehängt, da mir anscheinend etwas fehlt:
@Override
public Dialog onCreateDialog(int id)
{
Dialog dialog;
Context appContext = this.getApplicationContext();
switch(id)
{
case RENAME_DIALOG_ID:
Log.i("Edit", "Creating rename dialog...");
dialog = new Dialog(appContext);
dialog.setContentView(R.layout.rename);
dialog.setTitle("Rename " + noteName);
break;
default:
dialog = null;
break;
}
return dialog;
}
Fehlt etwas daran? In einigen Fragen wurde über dieses Problem beim Erstellen eines Dialogfelds gesprochen onCreate
, das auftritt, weil die Aktivität noch nicht erstellt wurde, dies jedoch aus einem Aufruf eines Menüobjekts stammt und die appContext
Variable im Debugger korrekt ausgefüllt zu sein scheint.