多くの EditTexts を持つ巨大なフォームを持つアクティビティがあります。ユーザーが画面を縦向きから横向きに、またはその逆に回転すると、EditTexts 内のすべてのデータが失われます。向きを変えても失われないようにデータを保持する方法はありますか?
縦向きと横向きにそれぞれ 1 つずつ、2 つのレイアウトを作成しました。また、両方のレイアウトのすべてのビューに同じ ID を持っています。
前もって感謝します。
多くの EditTexts を持つ巨大なフォームを持つアクティビティがあります。ユーザーが画面を縦向きから横向きに、またはその逆に回転すると、EditTexts 内のすべてのデータが失われます。向きを変えても失われないようにデータを保持する方法はありますか?
縦向きと横向きにそれぞれ 1 つずつ、2 つのレイアウトを作成しました。また、両方のレイアウトのすべてのビューに同じ ID を持っています。
前もって感謝します。
はい。以下のコードを使用して、EditTexts のデータを取得できます。
onCreate()
メソッドでは、
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int ot = getResources().getConfiguration().orientation;
switch (ot) {
case Configuration.ORIENTATION_LANDSCAPE:
setContentView(R.layout.<your_landscape_layout>);
break;
case Configuration.ORIENTATION_PORTRAIT:
setContentView(R.layout.<your_portrait_layout>);
break;
}
setButtonClickListeners();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int ot = getResources().getConfiguration().orientation;
switch (ot) {
case Configuration.ORIENTATION_LANDSCAPE:
setContentView(R.layout.<your_landscape_layout>);
setButtonOnClickListeners();
initializeViews();
break;
case Configuration.ORIENTATION_PORTRAIT:
setContentView(R.layout.<your_portrait_layout>);
setButtonOnClickListeners();
initializeViews();
break;
}
}
@SuppressWarnings("deprecation")
@Override
public Object onRetainNonConfigurationInstance() {
return super.onRetainNonConfigurationInstance();
}
}
ではsetButtonOnClickListeners()
、すべての を開始し、EditTexts
でinitializeViews()
データを取得してEditTexts
表示します。setText()