0

I have an activity with two fragments added to a tabAction. The first one is the gridview of applications, the second one is a gridview for documents. When I rotate the tablet my fragments are not up to date. I would like to instantiate my fragment after a rotation so the Activity restarts; but the problem that I don't use viewpager. And with the part of code given below:

  // ActionBar
actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionbar.setDisplayUseLogoEnabled(false);
actionbar.setDisplayShowTitleEnabled(false);
// create new tabs and set up the titles of the tabs
ActionBar.Tab mFindTab = actionbar.newTab().setText(
        getString(R.string.ui_tabname_find));
ActionBar.Tab mChatTab = actionbar.newTab().setText(
        getString(R.string.ui_tabname_chat));
ActionBar.Tab mMeetTab = actionbar.newTab().setText(
        getString(R.string.ui_tabname_meet));
ActionBar.Tab mPartyTab = actionbar.newTab().setText(
        getString(R.string.ui_tabname_find));

// create the fragments
Fragment mMeetFragment = new ApplicatinFragment();
Fragment mFindFragment = new MatFragment();
Fragment mChatFragment = new DocumentFragment1();

Fragment mPartyFragment = new PartyFragment();

// bind the fragments to the tabs - set up tabListeners for each tab
mFindTab.setTabListener(new MyTabsListener(mFindFragment,
        this.getBaseContext()));
mChatTab.setTabListener(new MyTabsListener(mChatFragment,
        getApplicationContext()));
mMeetTab.setTabListener(new MyTabsListener(mMeetFragment,
        getApplicationContext()));
actionbar.addTab(mMeetTab);
actionbar.addTab(mFindTab);

my onSaveInstanceState is given by the code below:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    /*
    Toast.makeText(
            this,
            "onSaveInstanceState: tab is"
                    + getActionBar().getSelectedNavigationIndex(),
            Toast.LENGTH_SHORT).show();   */
    outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
    outState.putStringArrayList("List", LaunchActivity.myList);
    outState.putString("ListActivity", LaunchActivity.myList.toString());

}

then in my Oncreat I call :

if (savedInstanceState != null) {
            savedUser = savedInstanceState.getString("TEXT");
            savedMode = savedInstanceState.getString("MODE");
            String str;
            str = savedInstanceState.getString("ListActivity");
            test = savedInstanceState.getStringArrayList("List");
            //actionbar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 1));
            // myList = (ArrayList<String>) Arrays.asList(str.split("\\s*,\\s*"));
            actionbar.setSelectedNavigationItem(savedInstanceState.getInt(
                    TAB_KEY_INDEX, 0));
        } else {
            savedUser = "eleve";
            savedMode = "normal";

        }

I would like to use the solution given in what's the right way to store fragment's state

ViewPager and fragments — what's the right way to store fragment's state ]1

Community
  • 1
  • 1
zied
  • 201
  • 3
  • 7
  • 17
  • Sorry I am a bit cofused. Are you using a viewpager or not cause in the end you are talking about ViewPager and Fragments – alecnash Feb 12 '14 at 15:12
  • Try moving your state restore code in OnCreate to OnActivityCreated – samus Feb 12 '14 at 15:24

0 Answers0