タブに 2 つの SherlockFragment を持つ SherlockFragmentActivity があります。当然のことながら、現在選択されているタブを、方向の変更時と、ユーザーがいずれかのフラグメントから起動したアクティビティから戻ったときにアクティブのままにしたいと考えています。
したがって、 onSaveInstanceStateを使用して、選択したタブのインデックスを保存し、 onCreateで再度選択します。これは、向きの変更でうまく機能します。しかし、別のアクティビティ (設定画面としましょう) を起動してそこから戻ると、onSaveInstanceStateが呼び出されていても、保存されたインスタンスの状態は常にonCreateで null になります。
ですから、問題は、私がこれを間違った方向に進めているだけなのかということだと思います。フラグメントを使用する場合、すべてのサブ画面をフラグメントとして 1 つのアクティビティのみを使用する必要がありますか?
または、保存したインスタンスの状態がアクティビティの変更間で消える理由は他にありますか?
編集:アクティビティBのコード
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}