Ich sehe im Android Fragments Dev Guide, dass eine "Aktivität Methoden in einem Fragment aufrufen kann, indem sie mit findFragmentById()
oder einen Verweis auf das Fragment von FragmentManager erhältfindFragmentByTag()
."
Das folgende Beispiel zeigt, wie eine Fragmentreferenz abgerufen wird, nicht jedoch, wie bestimmte Methoden im Fragment aufgerufen werden.
Kann jemand ein Beispiel geben, wie das geht? Ich möchte eine bestimmte Methode in einem Fragment aus der übergeordneten Aktivität aufrufen. Vielen Dank.
Wenn Sie "android.app.Fragment importieren" verwenden; Verwenden Sie dann entweder:
1)
Wobei R.id.example_fragment höchstwahrscheinlich die FrameLayout-ID in Ihrem XML-Layout ist. ODER
2)
Wobei FragTagName der Name ist, den Sie angegeben haben, als Sie dies getan haben:
Wenn Sie "android.support.v4.app.Fragment importieren" verwenden; Verwenden Sie dann entweder:
1)
ODER
2)
quelle
Wenn Sie eine Support-Bibliothek verwenden, möchten Sie Folgendes tun:
quelle
((FragmentName) getFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
2. Wenn Sie ein Support Library-Fragment verwenden, gehen Sie wie folgt vor:
((FragmentName) getSupportFragmentManager().findFragmentById(R.id.fragment_id)).methodName();
quelle
Ich denke, das Beste ist zu überprüfen, ob Fragment hinzugefügt wird, bevor Methode in Fragment aufgerufen wird. Tun Sie so etwas, um eine Null-Ausnahme zu vermeiden.
quelle
Vom Fragment zur Aktivität:
Von der Aktivität zum Fragment:
FragmentManager fm = getSupportFragmentManager ();
Wenn Sie Fragment über Code hinzugefügt und beim Hinzufügen Ihres Fragments eine Tag- Zeichenfolge verwendet haben , verwenden Sie stattdessen findFragmentByTag :
quelle
Zuerst erstellen Sie eine Methode nach Ihren
fragment
Wünschenin deinem fügst
activity
du das hinzuonCreate()
Methode hinzufügenRufen Sie schließlich die Methode auf, die Sie aufrufen möchten, und fügen Sie diese hinzu
Versuchen Sie diesen Code
quelle
quelle
Ich weiß es nicht
Java
, aber inC#
(Xamarin.Android) muss das Fragment nicht jedes Mal nachgeschlagen werden, wenn Sie die Methode aufrufen müssen (siehe unten):Ich denke,
Java
du kannst das Gleiche tun.quelle
Sie rufen auch die Fragmentmethode über die Schnittstelle like auf
Zuerst erstellen Sie eine Schnittstelle
Nach dem Erstellen der Schnittstelle implementieren Sie die Schnittstelle in Ihrem Fragment
und Sie erstellen die Referenz der Schnittstelle in Ihrer Aktivität
quelle
quelle