mic*_*ael 134 android runtimeexception android-dialog android-windowmanager
当我尝试打开对话框时,我收到以下Android异常.有人可以帮我理解发生了什么,我该如何解决这个问题?
android.view.WindowManager$BadTokenException:
Unable to add window -- token null is not for an application
at android.view.ViewRoot.setView(ViewRoot.java:509)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.app.Dialog.show(Dialog.java:241)
Run Code Online (Sandbox Code Playgroud)
Pet*_*ego 419
我猜 - 您是否正在尝试使用应用程序上下文创建Dialog?像这样的东西:
new Dialog(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)
这是错的.您需要使用Activity上下文.
你必须尝试:
new Dialog(YourActivity.this);Run Code Online (Sandbox Code Playgroud)
cod*_*zjx 34
您可以继续使用getApplicationContext(),但在使用之前,您应该添加此标志:dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT),并且不会显示错误.
并且不要忘记添加权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
Run Code Online (Sandbox Code Playgroud)
Pri*_*shi 12
尝试getParent()在争论的地方context像new AlertDialog.Builder(getParent());希望它会工作,它为我工作.
pos*_*uKe 12
在我的情况下,我试图像这样创建我的对话框:
new Dialog(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)
所以我不得不改变:
new Dialog(this);
Run Code Online (Sandbox Code Playgroud)
它对我来说很好;)
| 归档时间: |
|
| 查看次数: |
129950 次 |
| 最近记录: |