Tôi đang cố mở một cửa sổ hộp thoại, nhưng mỗi lần tôi cố mở nó sẽ ném ngoại lệ này:
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)
Tôi đang tạo nó bằng cách gọi showDialog
với id của màn hình. Trình onCreateDialog
xử lý ghi nhật ký tốt và tôi có thể bước qua nó mà không gặp vấn đề gì, nhưng tôi đã đính kèm vì có vẻ như tôi đang thiếu một cái gì đó:
@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;
}
Có cái gì thiếu từ cái này? Một số câu hỏi đã nói về vấn đề này khi tạo hộp thoại onCreate
, điều này xảy ra do hoạt động chưa được tạo, nhưng điều này đến từ một cuộc gọi từ một đối tượng menu và appContext
biến có vẻ như được đặt chính xác trong trình gỡ lỗi.