旋转屏幕后如何恢复对话框等?例如,弹出一个alertDialog告诉用户一些信息。然后用户将屏幕旋转到另一个方向。如何恢复alertDialog?任何人都可以指导我去做吗?谢谢!
稍后附上:
我查看了android源代码并发现了这些东西:
对话框存储在mManagedDialogs
,相关信息为:
mManagedDialogs = new SparseArray<ManagedDialog>();
onSaveInstanceState
有关的:
final void performSaveInstanceState(Bundle outState) {
onSaveInstanceState(outState);
saveManagedDialogs(outState);
}
In saveManagedDialogs
,这与mManagedDialogs
.
onRestoreInstanceState
有关的:
final void performRestoreInstanceState(Bundle savedInstanceState) {
onRestoreInstanceState(savedInstanceState);
restoreManagedDialogs(savedInstanceState);
}
In restoreManagedDialogs
,这与mManagedDialogs
.
如您所见,对于高级功能,您必须自己完成保存和恢复工作。当您有大量自定义对话框时,这可能是一场噩梦。我还没有尝试过复杂的对话框(例如输入EdiText、listView)。通过这种方式,我想警告用户:在对话框中输入信息时切勿旋转屏幕...或者,在显示对话框时动态锁定旋转。
感谢所有回答我的人。希望我的信息也对你有帮助。
只要您使用 Activity#showDialog 来显示它并使用 Activity#onCreateDialog 来创建它,它就会为您处理:http://developer.android.com/reference/android/app/Activity.html#showDialog%28int%29
http://developer.android.com/reference/android/app/Activity.html#onCreateDialog%28int,%20android.os.Bundle%29
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)