【问题标题】:AlertDialog disappearing after screen rotation after pressing back按下后屏幕旋转后AlertDialog消失
【发布时间】:2014-05-30 13:36:28
【问题描述】:

我已经覆盖了 onBackPressed() 方法,并在其中弹出了一个对话框,要求用户确认。然而,旋转设备后,对话框消失。

我在 StackOverflow 上搜索了不同的线程,其中提到使用 DialogFragment 或覆盖活动的 onCreateDialog() 和 onPrepareDialog() 方法,然后调用 showDialog(id) 来显示对话框。

现在,我的问题是,如果我使用 onCreateDialog 和 onPrepareDialog,我将如何处理 onBackPressed 方法?

之前我在 onBackPressed 中执行 dialog.show()。我现在该怎么办?

【问题讨论】:

    标签: android android-alertdialog


    【解决方案1】:

    您需要保存您的用户界面状态。

    将成员private boolean mIsConfirmationDialogShowing = false; 添加到您的活动中,并在您显示对话框时设置它。

    确保将其值存储在 onSaveInstanceState() 中并将其恢复到 onCreate() 中。

    然后在onResume()中,如果设置了mIsConfirmationDialogShowing,则再次显示确认对话框。

    在取消时将其设置为false

    【讨论】:

    • 所以你的意思是设置了mIsConfirmationDialogShowing 然后我需要创建整个对话框并再次显示它?
    • 正确。只需将创建放到一个单独的方法中,就可以从onBackPressed()onResume()调用它
    【解决方案2】:

    答案是调用方法showDialog()。但是这种方法已经被弃用了,google推荐使用DialogFragment

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 2014-07-14
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多