4

I have used multiple tabs in fragment class. I was failed in saving the state of fragment. I used the method onSaveInstanceState() and save a parameter in it. But when I came back to this fragment the saved state always shows "null". I tried all the questions and answers regarding to this.Still I am facing the same problem. Please could anyone help me to solve this.

MY CODE

 @Override
 public void onCreate(Bundle savedInstanceState) {
   // TODO Auto-generated method stub
   super.onCreate(savedInstanceState);
   setRetainInstance(true);
   super.onCreate(savedInstanceState);
   Log.d("savedInstanceStateInfo1", "" + savedInstanceState);
   if (null != savedInstanceState) {
    nAndroids = savedInstanceState.getInt("nAndroids");
    Log.d("NANDROIDS", "" + nAndroids);
   }
  }
  // Log.d("State in oncreate : ",""+savedInstanceState);

 @Override
 public void onActivityCreated(Bundle savedInstanceState) {
  super.onActivityCreated(savedInstanceState);
  setRetainInstance(true);
  Log.d("SavedinstanestateInfo", "" + savedInstanceState);
 }

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
  Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  if (container == null) {
   return null;
  }
  // final ActionBar ab=getActivity().getSupportActionBar();

  View v = (LinearLayout) inflater.inflate(R.layout.infotab, container, false);
  Log.d("SavedinstanestateInfo", "" + savedInstanceState);
  return v;
 }
 @Override
 public void onSaveInstanceState(Bundle outState) {
  outState.putInt("nAndroids", nAndroids);

  super.onSaveInstanceState(outState);
 }
Liuting
  • 1,098
  • 17
  • 35
poola naresh
  • 73
  • 1
  • 2
  • 6

1 Answers1

6

1) Apparently when using setRetainInstance(true), the Bundle for onRestoreInstanceState is null.

https://stackoverflow.com/a/8488107/1011746

2) Not necessary, but more customary to call super.onSaveInstanceState(outState) before making any modifications to outState. Same for super.onRestoreInstanceState(outState) in onRestoreInstanceState(Bundle outState).

Community
  • 1
  • 1
mindriot
  • 14,149
  • 4
  • 29
  • 40