Activity-Und Fragment-Interaktion

Ich habe eine Activity mit mehreren Fragments. Ich will zeigen, eine DialogFragment oder öffnen Sie eine andere Fragment von einem der Fragments. Ich weiß, dass ein Activity sollte sein, die eine Aufgabe mit öffnen Fragments also statt dessen habe ich versucht, ein paar Dinge.

ERSTEN

Ich habe versucht, zu verwenden getActivity() und warf es, so kann ich eine Methode aufrufen in der Activity zu zeigen Fragment aber das schafft Sie eine Abhängigkeit in der Fragment mit der Activity und ich möchte vermeiden, das hinzufügen einer Abhängigkeit, wenn möglich.

ZWEITEN

Danach habe ich versucht, einen listener zu Benachrichtigen, die Activity es sollte zeigen, ein Fragment. Also habe ich eine Klasse angelegt, in der Activity zu implementieren die listener-Schnittstelle. Aber ich hatte Probleme, weil ich zu verwenden habe New MyActivity().new Listener(); und es würde werfen ein Exception als ich versuchte zu verwenden getSupportFragmentManager() da diese Instanz des Activity ist nicht initialisiert.

DRITTEN

Ich habe dann versucht, die Activity implementieren, die den Zuhörer direkt, die funktioniert, weil dann bin ich nur bei der Erstellung einer Abhängigkeit mit dem Hörer und nicht die Aktivität. Aber jetzt bin ich immer zu dem Punkt, wo meine Activity wird die Implementierung von 2 - 4 verschiedenen Schnittstellen, das macht mich zögerlich, weil es stark reduzieren zusammenhalt.

So, wie ich versucht habe, ich scheine zu sein, läuft in eine Mauer und die Schaffung von Abhängigkeiten, ich bin mir nicht sicher, ich brauche, zu erstellen. Bin ich geschraubt und gehen mit einer dieser Optionen? Wenn ja, welche option am besten wäre? Jede Hilfe oder Anregungen sind wir sehr dankbar.

  • Es gibt viele Möglichkeiten, es zu tun, ich bevorzuge, die Dinge so entkoppelt wie möglich, und für dass ich wie ein event-bus. Siehe otto, zum Beispiel: square.github.io/otto. (Können Sie loszuwerden, alle die Schnittstelle/listener-cruft. Pass-Daten, tun Sie es mit starken Typen, die es tun, in einer klaren prägnant!)
  • Es scheint vielversprechend. Werde ich haben, check it out. Danke für den Tipp.
InformationsquelleAutor Jason Crosby | 2013-07-03
Schreibe einen Kommentar