歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 解決Android橫豎屏切換數據丟失問題

解決Android橫豎屏切換數據丟失問題

日期:2017/3/1 10:13:38   编辑:Linux編程

Android橫豎屏切換時,當前的Activity會被銷毀,然後Activity上面的數據將會全部丟失。

如Listview上面每個item的checkbox,橫豎屏切換時,復選框就丟失所有選中信息。

解決方案1、

在Androidmanifest.xml的activity標簽中加入

android:configChanges="orientation|keyboardHidden"

  1. <activity
  2. android:configChanges="orientation|keyboardHidden"
  3. android:label="sqltest"
  4. android:name=".SqlData"
  5. </activity>

解決方案2、

強制限制activity在橫屏狀態或者豎屏狀態,不讓activity進行橫豎屏切換

landscape表示橫屏

portrait表示豎屏

  1. <activity
  2. android:label="sqltest"
  3. android:name=".SqlData"
  4. android:screenOrientation="landscape" >
  5. </activity>

解決方案3、

在Activity裡面通過復寫

onConfigurationChanged方法,實現在不同的屏幕狀態下的處理方式。

  1. @Override
  2. public void onConfigurationChanged(Configuration newConfig) {
  3. // TODO Auto-generated method stub
  4. super.onConfigurationChanged(newConfig);
  5. /*
  6. * 橫豎屏檢測
  7. */
  8. if (this.getResources().getConfiguration().orientation
  9. == Configuration.ORIENTATION_LANDSCAPE) {
  10. // 當前為橫屏
  11. //實現代碼
  12. }
  13. else if (this.getResources().getConfiguration().orientation
  14. == Configuration.ORIENTATION_PORTRAIT) {
  15. // 當前為豎屏
  16. //實現代碼
  17. }
  18. /*
  19. * 實體鍵盤狀態檢測
  20. */
  21. if (newConfig.hardKeyboardHidden
  22. == Configuration.HARDKEYBOARDHIDDEN_NO) {
  23. // 實體鍵盤處於推出狀態
  24. //實現代碼
  25. }
  26. else if (newConfig.hardKeyboardHidden
  27. == Configuration.HARDKEYBOARDHIDDEN_YES) {
  28. // 實體鍵盤處於合上狀態
  29. //實現代碼
  30. }
  31. }
Copyright © Linux教程網 All Rights Reserved