Ich habe gesucht und nicht gefunden, den besten Weg für verschachtelte Fragmente mit Elternfragment zu kommunizieren. In der Android-Dokumentation heißt es:Parent-Fragment zu Child Fragment-Kommunikation
Die gesamte Fragment-zu-Fragment-Kommunikation erfolgt über die zugehörige Aktivität. Zwei Fragmente sollten niemals direkt kommunizieren.
Angenommen, ich habe eine Galerie-App gibt es ein ViewPagerFragment (Eltern) und ImageFragment (Kind), die verwendet wird, um Bilder Vollbild anzuzeigen, wenn sie angeklickt wird. Ich muss eine ArrayList von Dateien von meinem Elternfragment an das Kindfragment übergeben. Was ist ein richtiger Weg, es zu tun?
1) Erstellen Sie einen Getter für das Arraylist in Elternfragment und verwenden Sie die getParentFragment()
in einem Kind Fragment diese Methode zugreifen?
2) Implementieren Sie eine Schnittstelle und gehen Sie durch die Aktivität, aber wie finde ich das Kindfragment von der Aktivität, wenn es keine ID hat?
3) Nutzen Sie diese in Elternfragment:
ChildFragment fragment =(ChildFragment)getChildFragmentManager().findFragmentById(R.id.child_fragment_id);
Und nur einen Setter in Kindfragment verwenden.
Aber wieder wie bekomme ich die ID des childFragment?
jeder Vielen Dank im Voraus
So gibt eigentlich keine Standardmethode? Die Verwendung von Schnittstellen hat keinen Vorteil gegenüber der Verwendung von getParent()? – LieForBananas
Die Verwendung von Schnittstellen ist sauberer und flexibler, da das untergeordnete Fragment die Liste von jedem übergeordneten Fragment abrufen kann, ohne seine spezifische Klasse zu kennen oder es sogar von einer Aktivität zu erhalten. Die einzige Bedingung ist, dass das Parent Fragment/Activity die Schnittstelle implementiert. – Juan
Vielen Dank für die Erklärung! Ich ging mit getParent() Methode, aber ich denke, ich werde eine Schnittstelle implementieren! – LieForBananas