Android fragment-Instanzen vermeiden Sie Duplikate

Hallo, ich bin nicht sicher, ob ich das richtige mache. Ich habe mehrere Fragmente in einer Aktivität gezeigt (nicht gleichzeitig). Wenn ich das fragment muss ich prüfen, ob eine Vorherige Instanz existiert? Ich bin mit dem Kompatibilitäts-Paket und mein fragment CameraFragment ist eine separate Klasse (in eigener Datei):

private void addNewFragment(Fragment fragment, String tag) {
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.frag1, fragment, tag);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    ft.addToBackStack(null);
    ft.commit();
}

dann :

public void startPicTaking() {

    addNewFragment(CameraFragment.newInstance(), TAG_PIC_TAKING);

}

Also jedes mal, wenn ein Benutzer auf eine Schaltfläche klickt, um ein Bild zu machen verwende ich diese Methoden, ABER soll ich überprüfen, ob das fragment bereits vorhanden ist und entfernen Sie es zuerst, oder hat die statische Methode newInstance stellen Sie sicher, dass das fragment ist nicht doppelt vorhanden?

Habe ich gelesen, der doc mehrmals, aber ich verstehe nicht, warum die Zeile:
ft.addToBackStack(null);
was ist es? Ich weiß, Sie können pop die zurück-stack und es hält die Transaktion aber wie kann es eingesetzt werden und für was? Ist es notwendig oder, wenn ich nicht verwenden kann ich es überspringen?

Dank

InformationsquelleAutor vallllll | 2012-11-13
Schreibe einen Kommentar