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

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) { 
  
   // 實體鍵盤處於合上狀態 
   //實現代碼 
  
  } 
  
 }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章