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