0

Was ich versuche, ist in meiner Haupttätigkeit zu warten, bis mein Fragment beendet, so dass ich Code ausführen kann, ohne Probleme in dem Fragment zu verursachen. Ich habe viele Methoden ausprobiert und kann keine Lösung finden. Heres etwas von meinem Code von meiner Haupttätigkeit:Warten auf Fragment zu vervollständigen

if (null == savedInstanceState) { 

     getFragmentManager().beginTransaction() 
       .replace(R.id.container, CameraFragment.newInstance()) 
       .commit(); 
    } 

Dies wird ein Fragment ausführen, das ein Bild aufnimmt und speichert.

Das Problem, das ich habe, ist zum Beispiel, ich möchte warten, bis dieses Fragment fertig ist, dann mehr Code aus meiner Haupttätigkeit ausführen. Ich kann keine funktionierende Lösung finden.

Bearbeiten: Gelöst, siehe die Antwort. Vielen Dank!

Antwort

1

Sie sind verwirrt. Sie führen kein Fragment. Sie zeigen es an. Es gibt keine Möglichkeit, "auf das Ende eines Fragments zu warten", weil Fragmente nicht das Konzept der Vervollständigung haben. Wenn Sie ein Fragment haben, das etwas tut, dann möchte es die Aktivität benachrichtigen, etwas zu tun (was das Entfernen dieses Fragments beinhalten könnte), ist das Weiterleiten des Fragments an die Aktivität, die bei Bedarf aufgerufen wird (z wie wenn der Benutzer eine Speichertaste drückt).

+0

Danke , das macht mehr Sinn. Ich habe versucht, das Fragment zu entfernen, nachdem es seinen ganzen Code abgeschlossen hatte, aber ohne Erfolg. Hast du einen Ratschlag, diesen Weg zu gehen? – aj21

2
  • Erstellen Sie eine Methode auf Ihrer Aktivität, laufen, wenn Ihr Fragment abgeschlossen ist
  • Umsetzung des onResume Methode auf dem Fragment wie folgt aus:

@Override 
public void onResume() { 
    super.onResume(); 
    ((NameOfActivity) getActivity()).afterFragmentComplete(); 
} 

+0

Wenn ich richtig verstehe, geht dieser Code in mein Fragment und ich möchte Code von meiner Hauptaktivität ausführen, nicht von meinem Fragment. – aj21

+0

Dieser Code wird auf Ihrem Fragment sein, aber es wird einen Code aus Ihrer Hauptaktivität aufrufen, gleich nachdem das Fragment abgeschlossen ist. Die Hauptaktivität wartet, bis das Fragment vollständig ist, und führt das "afterFragmentComplete()" aus, das auf der MainActivity –

+0

Ich implementierte das beibehalten wird, und es wird nachFragmentComplete ausgeführt, bevor das Fragment seinem gesamten Code nahe kommt. Irgendeine Idee? – aj21