Reputation: 137
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. :/
Upvotes: 1
Views: 135
Reputation: 198
@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);
}
Upvotes: 1