我已经覆盖了onBackPressed()方法,并在其中弹出一个对话框,要求用户确认。但是,在旋转设备时,对话框会消失。
我在StackOverflow上搜索了不同的主题,提到使用DialogFragment或覆盖onCreateDialog()和onPrepareDialog()方法,然后调用showDialog(id)来显示对话框。
现在,我的问题是,如果我使用onCreateDialog和onPrepareDialog,我将如何处理onBackPressed方法?
之前我在onBackPressed上做了dialog.show()。我现在该怎么办?
答案 0 :(得分:1)
你需要保存你的ui状态。
将成员private boolean mIsConfirmationDialogShowing = false;
添加到您的活动中,并在显示对话框时进行设置。
请务必将此值存储在onSaveInstanceState()
中,并将其恢复为onCreate()
。
然后在onResume()
中,如果设置了mIsConfirmationDialogShowing
,则再次显示确认对话框。
取消时将其设为false
。
答案 1 :(得分:-2)
答案是调用方法showDialog()。但是这种方法已被弃用,谷歌建议使用DialogFragment