【问题标题】:showDialog() called, but no dialog box on screen调用了 showDialog(),但屏幕上没有对话框
【发布时间】: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


【解决方案1】:

显示消息的代码:

                 ShowMessage("Title","Message goes here");

和“ShowMessage”无效:

  public void ShowMessage(String titulo,String msg){
        AlertDialog.Builder dialogo = new AlertDialog.Builder(this);        
        dialogo.setMessage(msg);        
        dialogo.setTitle(titulo);       
        dialogo.setNeutralButton("OK", null);       
        dialogo.show();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多