title: Android - save/restore fragment state
body: <p>I have an Activity in which I go through several fragments. In every fragment I have several views (<code>EditText, ListView, Map</code>, etc).</p>
  
  <p>How can I save the instance of the fragment that is shown at that moment? I need it to work when the activity is <code>onPause() --&gt; onResume()</code>. Also I need it to work when I return from another fragment (pop from backstack).</p>
  
  <p>From the main <code>Activity</code> I call the first fragment, then from the the fragment I call the next one.</p>
  
  <p>Code for my Activity:</p>
  
  <pre><code>public class Activity_Main extends FragmentActivity{
  
  public static Fragment_1 fragment_1;
  public static Fragment_2 fragment_2;
  public static Fragment_3 fragment_3;
  public static FragmentManager fragmentManager;
  
  @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
  
       fragment_1 = new Fragment_1();
  
       fragment_2 = new Fragment_2();
  
       fragment_3 = new Fragment_3();
  
       fragmentManager = getSupportFragmentManager();
       FragmentTransaction transaction_1 = fragmentManager.beginTransaction();
       transaction_1.replace(R.id.content_frame, fragment_1);
       transaction_1.commit();
  }}
  </code></pre>
  
  <p>Then here is the code for one of my fragments:</p>
  
  <pre><code>public class Fragment_1 extends Fragment {
  
        private EditText title;
        private Button go_next;
  
  
        @Override
        public View onCreateView(final LayoutInflater inflater,
          ViewGroup container, Bundle savedInstanceState) {
  
              View rootView = inflater.inflate(R.layout.fragment_1,
              container, false);
  
              title = (EditText) rootView.findViewById(R.id.title);
  
              go_next = (Button) rootView.findViewById(R.id.go_next);
  
              image.setOnClickListener(new View.OnClickListener() {
  
           @Override
           public void onClick(View v) {
  
                   FragmentTransaction transaction_2 = Activity_Main.fragmentManager
                  .beginTransaction();
  
                   transaction_2.replace(R.id.content_frame,
                    Activity_Main.fragment_2);
                   transaction_2.addToBackStack(null);
                   transaction_2.commit();  
  
              });
          }}
  </code></pre>
  
  <p>I have searched a lot of information but nothing clear. Can somebody give a clear solution and an example, please ? </p>