以下のコードで DetailActivity を開始するところから MainActivityFragment があります。
private final CurrencyListAdapter.ClickListener itemClickListener
= new CurrencyListAdapter.ClickListener() {
@Override
public void onItemClick(int position, View v) {
Intent intent = new Intent(getActivity(), DetailActivity.class);
String code = mCurrencyList.get(position).getCode();
intent.putExtra(Constants.SELECTED_CODE_KEY, code);
startActivity(intent);
}
};
その後、私の DetailActivity から、以下のコードで私の DetailActivityFragment を開始します:
if (savedInstanceState == null) {
DetailActivityFragment fragment = DetailActivityFragment.getInstance(code);
getSupportFragmentManager()
.beginTransaction()
.add(R.id.detail_container, fragment)
.commit();
}
また、MainActivityFragment 内でインスタンスの状態を保持しています。ただし、DetailActivityFragment から戻るボタンを押しているときに、MainActivityFragment の onCreateView メソッドが呼び出され、saveInstanceState メソッドが実行されず、savedInstanceState が null であるため、インスタンスの状態を復元できません。なぜこれが起こるのか、私は非常に興味があります。これは、同じロジックを持つ他のプロジェクトでは発生していません。誰かが私を助けてくれたら、とても感謝します。