【发布时间】:2012-09-17 18:08:19
【问题描述】:
直到最近,我一直在使用 showDialog() 和 hideDialog() 没有任何问题。我刚刚在我的项目中添加了一个新 Activity,现在由于某种原因我无法在新 Activity 中生成一个对话框。
调用很简单:
showDialog(DIALOG_ID);
// do some work off the main thread
hideDialog(DIALOG_ID);
这样的对话管理:
protected Dialog onCreateDialog(int id) {
ProgressDialog dialog = null;
switch (id) {
case DIALOG_ID:
dialog = new ProgressDialog(this);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage("LOADING ...");
break;
default:
dialog = null;
}
return dialog;
}
在调试器中,我可以看到 onCreateDialog() 正在使用正确的 ID 调用,并且正在其中执行正确的案例......但对话框从未出现在屏幕上。我也尝试过显式调用 dialog.show(),但这没有帮助。
这应该很简单:是什么阻止了对话框出现?谢谢。
【问题讨论】:
-
你想要一个对话框(我理解的消息框)只显示消息,对吗?但是然后再次隐藏它,我知道如何显示一个对话框(消息框)但有一个确定按钮..如果有帮助?
-
好的,让我们看看你是怎么做的 - 谢谢。
-
检查我的答案,随便评论一下
-
顺便说一句,我正在那里阅读您的代码并尝试取出“default: dialog = null;”看看会发生什么?
-
我不知道为什么,但代码现在可以工作了。我所做的更改是将工作行“// 在主线程之外做一些工作”移动到 IntentService。因此,当 showDialog/hideDialog 调用包围同一个 Activity 中的其他函数调用时,对话框不会出现......但是当工作线从 UI 移到单独的 IntentService 时确实有效(它们应该在哪里,因为工作涉及从服务器获取数据)。无论如何感谢您的帮助!
标签: android android-activity android-dialog