2012-08-15 53 views
4

围绕这个论坛经过长时间的搜寻之后的最好方式,我发现了很多,人们提出使用方案,以避免对话框旋转后解雇的答案,只是想:Android的 - 避免对话框的设备旋转后驳回

android:configChanges="keyboardHidden|orientation" 

或覆盖以下方法,这似乎是最推荐:

protected Dialog onCreateDialog(int id) 

但是,Android的参考文档环顾后,我注意到,这些对话框方法正在过时。

因此,一个显而易见的问题是:

今天,什么是避免对话框的设备旋转后解雇的最佳方式?

在此先感谢。

+0

任何简单的方法是锁定屏幕方向,所以没有旋转,但我猜测这不是一个选项。 – MikeIsrael 2012-08-15 06:54:45

回答

6

您现在应该使用新的Fragments API中的DialogFragment。要在3.0以下的平台上使用它,请使用compatibility package

+0

谢谢@Vladimir。 我会尝试与DialogFragments,因为我刚才看到在文档的下一个状态: _Dialog \t onCreateDialog(INT ID,捆绑参数) 此方法已被弃用。 **改用FragmentManager使用新的DialogFragment类**;这也可以通过Android兼容性套件在较老的平台上使用._现在,我确信这是最好的方式。 – 2012-08-15 16:56:33

+1

与一些示例代码相同的答案:http://stackoverflow.com/a/15729764/842697 – 2013-03-31 13:24:35

0

试试这个....

onOrientationChanged(int x) 
{ 
dialogobject.dismissDialog(); 
} 
4

什么我会回答是仅基于对话框(NOT dialogfragment这是一个完全不同的游戏)。

对话框是活动的一部分,因此它们在旋转过程中被破坏。您以前对该对话框的引用现在将指向一个不在屏幕上的对话框,并且可能会导致您遇到问题。

不幸的是,没有简单的解决方案。 随着android:configChanges="keyboardHidden|orientation"你会为自己创建一系列其他问题。

要做的方法是保存对话框的任何配置,解除它,并且每当活动被重新创建时,重新创建对话框。

相关问题