2つのオプションがあります:
- あなたの活動や断片で使用
onSaveInstanceState(Bundle outState)
方法 - あなたのデータを保存し、回転後にそれらを復元する(onCreate(Bundle savedInstanceState)
またはonRestoreInstanceState(Bundle savedInstanceState)
中)
例:
は、
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("time_data", (Seriazable) mTimeList);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
if (savedInstanceState != null) {
// restore value of members from saved state
mTimeList = savedInstanceState.getSerializable("time_data");
}
...
}
- を使用してください:あなたと同じようにconfigChangesを変更する回転後の自分で変更を扱うが、景観のレイアウトを膨らませるDY使用
例:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
私は最初のオプションを好むし、また、これはAndroid guideに提案しました。
ありがとう:)私はあなたの第二の溶液を使用している場合、()の場合であれば下に、私は、アダプタクラスのレイアウトランドXMLを設定する必要があります。どうすればいいのですか – Mark023
設定変更後のレイアウトインフレーションに関するこのStackOverflow [answer](http://stackoverflow.com/a/17050108/1423876)をチェックすることができます。 StackOverflowにはレイアウトインフレーションに関するいくつかの質問がありますので、それらを確認して目的に合わせて適切なものを使用することができます。 – comrade