旋转屏幕时取消AlertDialog

时间:2011-11-08 17:29:20

标签: android alertdialog

我在应用程序上显示AlertDialog.Builder。当我旋转屏幕时,我得到“应用程序已泄露窗口”错误。如何在onPause()事件中取消AlertDialog?我没有看到Ad.cancel()的任何方法。

更新:为工作模式编辑的代码。

   private AlertDialog inputDlg; 
   ...
   @Override
   protected void onPause ()
   {
     // close dialog if it's showing
     if (inputDlg != null)
        if (inputDlg.isShowing ())
          inputDlg.dismiss ();

      super.onPause ();
   }

   ...

   private void dlgUserPrompt (Context c)
   {
      // Set an EditText view to get user input 
      final EditText input = new EditText (c);

      AlertDialog.Builder Ab = new AlertDialog.Builder (this);
      Ab.setTitle("title");
      Ab.setMessage("I won't explode if you rotate this");
      Ab.setView(input);
      inputDlg  = Ab.show ();
   }

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找dismiss方法。

答案 1 :(得分:0)

您需要覆盖onConfigurationChange()挂钩才能执行此操作。这个document将有助于向您解释有关配置更改的具体内容以及如何处理它们的更多信息。