(1) configChanges:keyboardHidden - 在此方法中,我不在清单文件中提供“屏幕方向”的 configChanges。因此,我在 onCreate() 和 onConfigurationChanged() 方法中均调用 setContentView() 方法。 它满足了我的两个要求。布局已更改,EditText 中的输入数据也保持不变。 但它有一个大问题:
当用户单击登录按钮时,会显示一个 ProgressDialog,直到收到服务器响应为止。 现在,如果用户在 ProgressDialog 运行时旋转设备,则应用程序崩溃。它显示一个异常,显示“无法将视图附加到窗口”。我尝试使用 onSaveInstanceState(确实在屏幕方向发生改变时调用)进行处理,但应用程序仍会崩溃。
(2) configChanges:orientation|keyboardHidden - 在此方法中,我在清单中提供“屏幕方向”。所以现在我有两种情况:
(a) 如果我在 onCreate() 和 onConfigurationChanged() 中均调用 setContentView() 方法,则布局会相应更改,但 EditText 数据会丢失。
(b) 如果我只在 onCreate() 中调用 setContentView() 方法,而不在 onConfigurationChanged() 中调用,则 EditText 数据不会丢失,但布局也不会相应更改。
在这种方法中,onSaveInstanceState() 甚至都没有被调用。
所以我真的很担心。有没有解决此问题的方法?请提供帮助。先感谢您。