Wie kann ich Daten von einem Fragment zu einem anderen Fragment Android übertragen

7

Ich weiß, dass dies durch Aktivität geschieht. Wir können Daten von Fragment zu Aktivität und von Aktivität zu Fragment senden. Gibt es einen anderen Weg?

    
skybolt 12.10.2013, 10:31
quelle

5 Antworten

14

Um Daten von einem Fragment zum anderen zu übertragen, hilft Bundle .

%Vor%

Dann push/call next Fragments.

und Code zum nächsten Fragment:

%Vor%     
RobinHood 12.10.2013 10:42
quelle
5

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

Ссылка

    
Raghunandan 12.10.2013 10:35
quelle
4

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.

    
AgentKnopf 24.06.2014 08:41
quelle
2

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 .. !!

    
sachin pangare 03.09.2015 09:49
quelle
0

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.

    
Sinu Varghese 12.10.2013 10:45
quelle

Tags und Links