不是从 Activity 启动 AlertDialog
Posted
技术标签:
【中文标题】不是从 Activity 启动 AlertDialog【英文标题】:Launch AlertDialog not from an Activity 【发布时间】:2011-06-26 00:11:58 【问题描述】:我试图在不在扩展活动的类中时启动警报对话框,但我在 GUI 线程上。我可以访问我的应用程序上下文并尝试使用它启动警报对话框,但出现错误:
02-12 00:48:07.412: ERROR/androidRuntime(1322): android.view.WindowManager$BadTokenException: 无法添加窗口 -- 令牌 null 不适用于应用程序
有人知道我在这个问题上做错了什么吗?
【问题讨论】:
是整个事情,还是有一个堆栈? 【参考方案1】:抱歉,只能通过 Activity 启动对话框。
如果您愿意,欢迎您创建一个使用Theme.Dialog
或看起来有点像对话框的活动。
【讨论】:
所以我知道您可以通过应用程序上下文启动 Toast。我如何确定哪些东西只能通过活动上下文启动,哪些东西也可以通过应用程序上下文启动。描述这一点的文档中是否有埋藏的地方?再次感谢 @metalideath:Toasts
工作。 startActivity()
有效。对话框只能从活动中打开。您可以通过搜索 *** 或反复试验来确定这一点——此类内容往往不会包含在文档中,因为没有明显的位置。
所以总结一下,以防其他人有同样的问题。您不能从应用程序的上下文启动对话框,但可以从活动上下文启动它。如果想要与对话框类似的外观效果,那么您可以创建一个使用对话框主题的活动,并使用应用程序上下文通过 startActivity 启动它。以上是关于不是从 Activity 启动 AlertDialog的主要内容,如果未能解决你的问题,请参考以下文章