Anonymer Benutzer
Wie übergibt man eine Variable von einer Aktivität an ein Fragment und gibt sie wieder zurück?
Ich bin gerade dabei, eine Android-App zu erstellen, und ich möchte ein Datum zwischen Aktivität und Fragment übergeben. Meine Aktivität hat eine Schaltfläche, die das Fragment öffnet: DatePickerFragment.
In meiner Aktivität zeige ich ein Datum, das ich mit dem Fragment ändern möchte. Ich möchte also das Datum an den Datepicker übergeben und es an die Activity zurücksenden.
Ich habe eine Menge Lösungen ausprobiert, aber keine funktioniert. Der einfache Weg wäre ein Argument übergeben, aber dies kann nicht mit Fragmenten getan werden.
126
3
Um Informationen an ein Fragment zu übergeben, setzen Sie beim Erstellen des Fragments die Argumente, die Sie später mit der Methode onCreate oder onCreateView Ihres Fragments abrufen können.
In der newInstance-Funktion Ihres Fragments fügen Sie die Argumente hinzu, die Sie an das Fragment senden möchten:
Dann innerhalb des Fragments in der Methode
onCreate
oderonCreateView
können Sie die Argumente wie folgt abrufen:Wenn Sie nun von Ihrem Fragment mit Ihrer Aktivität kommunizieren wollen (Daten senden oder nicht), müssen Sie Schnittstellen verwenden. Die Art und Weise, wie man dies tun kann, wird in der Dokumentation Tutorial der Kommunikation zwischen Fragmenten sehr gut erklärt. Da alle Fragmente untereinander über die Aktivität kommunizieren, können Sie in diesem Tutorial sehen, wie Sie Daten vom aktuellen Fragment an seinen Aktivitätscontainer senden können, um diese Daten in der Aktivität zu verwenden oder sie an ein anderes Fragment zu senden, das Ihre Aktivität enthält.
Dokumentation Tutorial:
http://developer.android.com/training/basics/fragments/communicating.html
Senden von Daten von
Activity
zu einemFragment
Aktivität:
Fragment:
Lesen des Wertes im Fragment
Aber wenn Sie Werte von Fragment zu Activity senden wollen, lesen Sie die Antwort von jpardogo, müssen Sie Schnittstellen benötigen, mehr Info: Kommunikation mit anderen Fragmenten
Verwenden Sie die Bibliothek EventBus, um Ereignisse, die Ihre Variable enthalten könnten, hin und her zu schicken. Es ist eine gute Lösung, weil es Ihre Aktivitäten und Fragmente lose gekoppelt hält.
https://github.com/greenrobot/EventBus