歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

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.             
  6.       </activity>  

解決方案2、

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

landscape表示橫屏

portrait表示豎屏

  1. <activity  
  2.             
  3.           android:label="sqltest"  
  4.           android:name=".SqlData"  
  5.           android:screenOrientation="landscape" >  
  6.       </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.   
  10.         == Configuration.ORIENTATION_LANDSCAPE) {  
  11.   
  12.             // 當前為橫屏   
  13.             //實現代碼   
  14.   
  15.         }  
  16.   
  17.         else if (this.getResources().getConfiguration().orientation  
  18.   
  19.         == Configuration.ORIENTATION_PORTRAIT) {  
  20.   
  21.             // 當前為豎屏   
  22.             //實現代碼   
  23.   
  24.         }  
  25.   
  26.         /* 
  27.          *  實體鍵盤狀態檢測 
  28.          */  
  29.   
  30.         if (newConfig.hardKeyboardHidden  
  31.   
  32.         == Configuration.HARDKEYBOARDHIDDEN_NO) {  
  33.   
  34.             // 實體鍵盤處於推出狀態   
  35.             //實現代碼   
  36.   
  37.         }  
  38.   
  39.         else if (newConfig.hardKeyboardHidden  
  40.   
  41.         == Configuration.HARDKEYBOARDHIDDEN_YES) {  
  42.   
  43.             // 實體鍵盤處於合上狀態   
  44.             //實現代碼   
  45.   
  46.         }  
  47.   
  48.     }  
Copyright © Linux教程網 All Rights Reserved