アクティビティでフラグメント (ListFragment) を使用し、選択したアイテムを保存して、画面が回転したときに復元します。
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("currentListIndex", mCurrentSelectedItemIndex);
}
ユーザーが「戻る」をクリックしたときに、アイテムの選択を保存したくありません。戻るボタンをオーバーライドし、アクティビティに渡されたバンドル インスタンスをクリアする必要があります。
バンドル インスタンスを取得する方法がよくわかりません。グローバル変数を使用しようとしましたが、使用すると NullPointerException が発生します。
これが私がする方法です:
private Bundle bundle;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
bundle.clear();
}
return super.onKeyDown(keyCode, event);
}
必要な情報 (currentListIndex) はどこで取得できますか: アクティビティの onCreate() / 詳細フラグメントの onCreateView() で?