Android对话框导致android.view.WindowManager $BadTokenException:无法添加窗口

Android对话框导致android.view.WindowManager $BadTokenException:无法添加窗口,第1张

概述我已将活动置于子视图中,现在无法显示活动和适配器中的对话框.在我的logCat中04-1112:39:59.823:E/AndroidRuntime(12831):FATALEXCEPTION:main04-1112:39:59.823:E/AndroidRuntime(12831):android.view.WindowManager$BadTokenException:Unabletoaddwindow--toke

我已将活动置于子视图中,现在无法显示活动和适配器中的对话框.在我的logCat中

04-11 12:39:59.823: E/AndroIDRuntime(12831): FATAL EXCEPTION: main04-11 12:39:59.823: E/AndroIDRuntime(12831): androID.vIEw.WindowManager$BadTokenException: Unable to add window -- token androID.app.LocalActivityManager$LocalActivityRecord@41971f18 is not valID; is your activity running?04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.vIEw.VIEwRootImpl.setVIEw(VIEwRootImpl.java:513)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.vIEw.WindowManagerImpl.addVIEw(WindowManagerImpl.java:301)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.vIEw.WindowManagerImpl.addVIEw(WindowManagerImpl.java:215)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.vIEw.WindowManagerImpl$CompatModeWrapper.addVIEw(WindowManagerImpl.java:140)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.vIEw.Window$LocalWindowManager.addVIEw(Window.java:537)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.app.Dialog.show(Dialog.java:278)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.app.AlertDialog$Builder.show(AlertDialog.java:932)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at com.myapp.functions.DownloadsDetailsAdapter.run(DownloadsDetailsAdapter.java:148)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.app.Activity.runOnUiThread(Activity.java:4170)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at com.myapp.functions.DownloadsDetailsAdapter.onClick(DownloadsDetailsAdapter.java:139)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.vIEw.VIEw.performClick(VIEw.java:3511)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.vIEw.VIEw$PerformClick.run(VIEw.java:14105)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.os.Handler.handleCallback(Handler.java:605)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.os.Handler.dispatchMessage(Handler.java:92)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.os.Looper.loop(Looper.java:137)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at androID.app.ActivityThread.main(ActivityThread.java:4440)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at java.lang.reflect.Method.invokeNative(Native Method)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at java.lang.reflect.Method.invoke(Method.java:511)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:554)04-11 12:39:59.823: E/AndroIDRuntime(12831):    at dalvik.system.NativeStart.main(Native Method)

这是我尝试显示对话框的示例.

AlertDialog.Builder builder = new AlertDialog.Builder(                            activity);                    builder.setMessage(R.string.are_you_sure)                            .setPositivebutton(R.string.yes,                                    dialogClickListener)                            .setNegativebutton(R.string.no, dialogClickListener)                            .show();

注意:在我进行更改之前,此代码已正常工作.我想我应该在新的runnable中运行它,但是如果我必须这样做,谁能告诉我我该怎么做?

解决方法:

我也面临同样的问题.我已经使用标签栏了.只需使用getParent()而不是youractivity.this.

我希望这将有所帮助.

总结

以上是内存溢出为你收集整理的Android对话框导致android.view.WindowManager $BadTokenException:无法添加窗口全部内容,希望文章能够帮你解决Android对话框导致android.view.WindowManager $BadTokenException:无法添加窗口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1095769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存