J'essaie d'ouvrir une fenêtre de dialogue, mais chaque fois que j'essaye de l'ouvrir, elle lance cette exception:
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)
Je le crée en appelant showDialog
avec l'ID de l'affichage. Le onCreateDialog
gestionnaire se connecte correctement et je peux le parcourir sans problème, mais je l'ai joint car il semble que je manque quelque chose:
@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;
}
Y a-t-il quelque chose qui manque à cela? Certaines questions ont évoqué ce problème lors de la création d'une boîte de dialogue à partir de onCreate
, ce qui se produit car l'activité n'est pas encore créée, mais cela provient d'un appel à partir d'un objet de menu, et la appContext
variable semble être correctement remplie dans le débogueur.