简体   繁体   中英

How can I save the state of my Fragments

I have multiple fragments with data I want to save, and be able to access from different fragments.

If I just would like to save the state of a specific fragment, how would I do so?

Here is how I am currently navigating:

Fragment "1"

  case R.id.imageButton1:

            Fragment fragment2;
            fragment2 = new Frag2();
            //fragment2.setArguments(args);
            FragmentManager frgManager = getFragmentManager();
        //  frgManager.putFragment(bundle, key, fragment)
            frgManager.beginTransaction().replace(R.id.content_frame, fragment2)
                    .commit();      

            break;  

Fragment "2"

switch(v.getId()){


case R.id.imageButton2:
    Fragment fragment;
    fragment = new Frag1();
    fragment.setArguments(fragment.getArguments());
    android.app.FragmentManager frgManager = getFragmentManager();
    frgManager.beginTransaction().replace(R.id.content_frame, fragment)
            .commit();  
    break;

case R.id.imageButton1:     
    fragment = new  LifeFrag3();
    android.app.FragmentManager frgManage = getFragmentManager();
    frgManage.beginTransaction().replace(R.id.content_frame, fragment)
            .commit();
    break;

I have also tried passing data by storing values in a hash map and then using on pause and on resume to pass keys, but i have had no luck. :/

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    if (savedInstanceState != null) {
        mContent = getSupportFragmentManager().getFragment(
                    savedInstanceState, "mContent");
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "mContent", mContent); 
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM