Android橫豎屏切換時,當前的Activity會被銷毀,然後Activity上面的數據將會全部丟失。
如Listview上面每個item的checkbox,橫豎屏切換時,復選框就丟失所有選中信息。
解決方案1、
在Androidmanifest.xml的activity標簽中加入
android:configChanges="orientation|keyboardHidden"
- <activity
- android:configChanges="orientation|keyboardHidden"
- android:label="sqltest"
- android:name=".SqlData"
-
- </activity>
解決方案2、
強制限制activity在橫屏狀態或者豎屏狀態,不讓activity進行橫豎屏切換
landscape表示橫屏
portrait表示豎屏
- <activity
-
- android:label="sqltest"
- android:name=".SqlData"
- android:screenOrientation="landscape" >
- </activity>
解決方案3、
在Activity裡面通過復寫
onConfigurationChanged方法,實現在不同的屏幕狀態下的處理方式。
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- // TODO Auto-generated method stub
- super.onConfigurationChanged(newConfig);
- /*
- * 橫豎屏檢測
- */
- if (this.getResources().getConfiguration().orientation
-
- == Configuration.ORIENTATION_LANDSCAPE) {
-
- // 當前為橫屏
- //實現代碼
-
- }
-
- else if (this.getResources().getConfiguration().orientation
-
- == Configuration.ORIENTATION_PORTRAIT) {
-
- // 當前為豎屏
- //實現代碼
-
- }
-
- /*
- * 實體鍵盤狀態檢測
- */
-
- if (newConfig.hardKeyboardHidden
-
- == Configuration.HARDKEYBOARDHIDDEN_NO) {
-
- // 實體鍵盤處於推出狀態
- //實現代碼
-
- }
-
- else if (newConfig.hardKeyboardHidden
-
- == Configuration.HARDKEYBOARDHIDDEN_YES) {
-
- // 實體鍵盤處於合上狀態
- //實現代碼
-
- }
-
- }