Android - Fragmentstatus speichern / wiederherstellen

Habe ich eine Tätigkeit, in die ich gehen durch mehrere Fragmente. In jedem fragment habe ich mehrere Ansichten (EditText, ListView, Mapetc).

Wie kann ich die speichern die Instanz des fragments, der angezeigt wird, in diesem moment? Ich brauche es um zu arbeiten, wenn die Aktivität ist onPause() --> onResume(). Auch ich Brauch es um zu arbeiten, wenn ich zurück von einem anderen fragment (pop backstack).

Vom main Activity ich nenne das erste fragment anschließend aus der das fragment rufe ich die nächste.

Code für meine Tätigkeit:

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();
}}

Dann ist hier der code für eine meiner Fragmente:

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();  

            });
        }}

Ich suchte eine Menge Informationen, aber nichts klar. Kann jemand eine klare Lösung und ein Beispiel, bitte ?

InformationsquelleAutor der Frage Stanete | 2014-03-19

Schreibe einen Kommentar