Zitat aus der Dokumentation
Oft möchten Sie, dass ein Fragment mit einem anderen kommuniziert, beispielsweise um den Inhalt basierend auf einem Benutzerereignis zu ändern. Die gesamte Kommunikation zwischen Fragmenten erfolgt über die zugehörige Aktivität. Zwei Fragmente sollten niemals direkt kommunizieren.
Ich schlage vor, Sie folgen der Methode in den Dokumenten und ich habe keine andere Alternative versucht
Für weitere Informationen und Beispiel chekc die Dokumente im folgenden Link
Es gibt zwei Methoden, die ich für durchführbar halte:
A . Kommunizieren Sie mit Ihrer eigenen Aktivität und leiten Sie Nachrichten über diese besitzende Aktivität an andere Fragmente weiter. Details dazu finden Sie in der offiziellen Android-Dokumentation hier:
Quote:
In einigen Fällen benötigen Sie möglicherweise ein Fragment, um Ereignisse mit dem zu teilen Aktivität. Eine gute Möglichkeit ist das Definieren einer Callback-Schnittstelle innerhalb des Fragments und erfordern, dass die Host-Aktivität es implementiert. Wenn die Aktivität über die Schnittstelle einen Rückruf erhält, kann sie dies tun Teilen Sie die Informationen bei Bedarf mit anderen Fragmenten im Layout.
Die Kommunikationsschnittstelle könnte in etwa so aussehen:
%Vor%Das Fragment würde ungefähr so aussehen:
%Vor%Ich verwende hier eine WeakReference, aber das liegt wirklich an Ihnen. Sie können nun actionCallback verwenden, um mit der besitzenden Aktivität zu kommunizieren und die in IActionListener definierten Methoden aufzurufen.
Die besitzende Aktivität würde folgendermaßen aussehen:
%Vor%B . Wie bei der zweiten Methode können Sie Fragmente direkt über Interfaces miteinander kommunizieren lassen - so müssen Sie nicht die genaue Klasse des Fragments kennen, mit dem Sie sprechen lose Kopplung.
Das Setup ist wie folgt: Sie haben zwei Fragmente (oder mehr) und eine Aktivität (um das zweite Fragment zu starten). Wir haben eine Schnittstelle, die es Fragment 2 ermöglicht, eine Antwort auf Fragment 1 zu senden, sobald es seine Aufgabe erfüllt hat. Der Einfachheit halber verwenden wir einfach die Schnittstelle, die ich in A definiert habe.
Hier ist unser Fragment 1:
%Vor%Mit der in A. Fragment 1 beschriebenen Methode wird Aktivität zum Starten von Fragment 2 angefordert. Die Aktivität wird jedoch Fragment 1 als Argument für Fragment 2 übergeben, sodass Fragment 2 später indirekt auf Fragment 1 zugreifen und die Antwort senden kann . Schauen wir uns an, wie die Aktivität Fragment 2 vorbereitet:
%Vor%Tipp : Ich verwende das Support-Framework, wenn Sie also ausschließlich für & gt; Android 3.0 können Sie einfach FragmentAktivität anstelle von ActionBarActivity verwenden.
Jetzt wird FragmentTwo gestartet, schauen wir uns an, wie FragmentTwo mit FragmentOne kommunizieren würde:
%Vor%Nun wird die Implementierung von doSomething () in Fragment 1 aufgerufen.
Hier ist die Lösung,
Befolgen Sie die folgenden Schritte:
1 Erstellen Sie die Schnittstelle wie folgt
%Vor%2. implementiert Ihre Aktivität über diese Schnittstelle
%Vor%3.In dieser Aktivität erstellen Sie onUpdateTitle ()
%Vor%4. Nun, in Fragment schreibe ich einen Code.
%Vor%5.Schreiben Sie einen Code im zweiten Fragment setTitle ()
%Vor%Wenn Sie in dieser Lösung auf den Button von Fragment eins klicken, wird der Wert im zweiten Fragment angezeigt. Ich hoffe es ist hilfreich für dich .. !!
Es ist eine gängige Praxis bei der Verwendung von Fragmenten, Fragmenten zu erlauben, miteinander zu kommunizieren, indem sie Aktivitäten als ihre Vermittler verwenden. Weitere Einzelheiten zu diesem wichtigen Muster finden Sie Ссылка . Wann immer Sie mit einem anderen Fragment interagieren müssen, sollten Sie immer eine Methode in der Aktivität des Fragments verwenden Greifen Sie direkt auf das andere Fragment zu. Es ist nur dann sinnvoll, auf ein Fragment eines anderen Fragments zuzugreifen, wenn Sie wissen, dass Sie Ihr Fragment nicht in einer anderen Aktivität wiederverwenden müssen. Sie sollten fast immer Fragmente schreiben, unter der Annahme, dass Sie sie wiederverwenden, anstatt sie gegenseitig hart zu codieren.