3

Ich habe Fragment zu Aktivität hinzugefügt wieGet Fragment Instanz in Aktivität

getSupportFragmentManager().beginTransaction() 
        .add(R.id.container,new MyFragment).commit(); 

wo container ist die ID von FrameLayout

<FrameLayout 
      android:id="@+id/container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

Nun, wie kann ich die Instanz von Fragmente erhalten in Aktivitätlike this

Ich muss eine Methode von Fragment A aufrufen, nachdem ich das Ergebnis von Fragment B bekommen habe.

Ich habe eine Schnittstelle in Fragment B und implementiert sie in Activity.Now erstellt i das Ergebnis an Fragment A passieren habe ich nicht in der Lage bin, die Instanz von Fragment A.

Eine Sache, die ich don zu bekommen Ich möchte eine private Instanz von Fragment A in Aktivität erstellen und diese Methode aufrufen.

+0

Sie diese Methode statisch machen –

+0

Warum Sie Fragment Instanz zu bekommen? besser, um eine Schnittstelle und überschreiben Methode in Aktivität und rief es aus Fragment. Auf diese Weise erhalten Sie alle Daten aus Fragment A für Ihre Aktivität –

+0

mit getActivity(). GetSupportFragmentManager(). BeginTransaction() .add (R.id.container, new MyFragment) .commit(); – iOS

Antwort

11

dieses Versuchen

getSupportFragmentManager().beginTransaction() 
       .add(R.id.container,new MyFragment(),"MyFragment").commit(); 

für das Fragment erhalten

MyFragment frag = ((MyFragment) getSupportFragmentManager().findFragmentByTag("MyFragment")); 
0

Danach link:

Alle Fragment-to-Fragment-Kommunikation wird durch die zugehörige Aktivität erfolgt. Zwei Fragmente sollten niemals direkt kommunizieren.

So würde ich empfehlen:

  1. Um ein interface in Fragment B zu definieren.
  2. Implementieren Sie die interface in activity.
  3. Dann liefern Sie schließlich die Nachricht an Fragment A.

Code example and reference.