如果微调器打开(列出)并旋转设备,则对话框上的Android微调器会崩溃

时间:2011-06-30 12:21:55

标签: android dialog rotation spinner alertdialog

我有一个带有几个按钮和一个微调器的对话框似乎工作正常,除了我的应用程序在以下情况下崩溃:  1.开始活动  2.使用Activity :: showDialog显示对话框(在onCreateDialog中创建)  3.单击微调器以显示列表  4. spinner发出AlertDialog  5.旋转设备  6.使用IllegalArgumentException崩溃

我可以看到Activity已经消失了,而且我的Dialog已经消失了,但Spinner提出的AlertDialog仍然存在。我会解雇Spinner AlertDialog,但它是Spinner类的私有成员(我检查了Android源代码),因此无法访问它。

如果您将微调器移动到您获得的活动:  1.开始活动  2.单击微调器以显示列表  3. spinner发出AlertDialog  4.旋转设备  5.微调器AlertDialog消失了  6.活动显示为旋转

我只能得出结论:  1.你根本不应该把微调器放在Dialog(或AlertDialog)上,或者  2.对话框或活动

中存在错误

有没有人对这个问题有任何智慧?

2 个答案:

答案 0 :(得分:1)

在清单中,将其添加到您的活动声明中:

android:configChanges="orientation"

答案 1 :(得分:0)

我和PopupWindow有同样的问题。解决方案是致电

popup.dismiss()
在onDestroy()方法中