0

ViewPager にタブとして 2 つのフラグメントがあります。これらはツールバーを共有しています。ツールバーのアイコンをクリックすると、SettingsActivity にアクセスできます。したがって、フラグメント A が表示されているか、フラグメント B が表示されているときに、SettingsActivity にアクセスできます。SettingsActivity からフラグメントに戻るときに、ツールバーの Up ボタン (actionBar.setDisplayHomeAsUpEnabled(true);) をクリックして、SettingsActivity にアクセスしたときに表示されていたフラグメントを表示したいと考えています。特別なコード (= 現在の状態) がなければ、常に ViewPager の最初の Fragment (つまり、一番左のもの) に戻るようです。Up ナビゲーションの親アクティビティは MainActivity で、2 つのフラグメントをタブとして持つ ViewPager があります。

4

2 に答える 2

0

MainActivity の状態を保存するには、状態保存コールバックを使用します。

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("SELETED_TAB_INDEX", mSelectedTabIndex);
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(savedInstanceState != null) { // so the activity is being restarted
        pager.setCurrentItem(savedInstanceState.getInt("SELETED_TAB_INDEX"));
    }
}
于 2016-03-25T22:50:56.153 に答える