2016-10-16 4 views
-1

Ich habe diese Art von StrukturWie Fragment-Methode von Aktivität Android aufrufen?

  1. HauptSeite Activity1 hat Ansicht Pager 3 Fragmente
  2. Halte Ich verwende tabapdater
  3. Die erste der Fragmente wurden Verfahren zu einem anderen Activity2

zu bewegen Ich möchte eine Methode im ersten Fragment auslösen, wenn in Activity2 auf die Schaltfläche geklickt wird.

Kann ich das tun? Kannst du mir irgendeinen Beispielcode dafür geben ??

Danke Jungs

+0

Sie wollen das erste Fragment von der zweiten Aktivität ändern ... habe ich recht? –

+0

Ja das ist richtig ist es möglich? –

+0

Ich möchte nur ein Objekt aus der zweiten Aktivität an das erste Fragment übergeben –

Antwort

0

Es gibt einige Lösungen. Die erste, die ich denke, ist startActivityForResult. Wenn Sie Ihre zweite Aktivität mit dem Aufruf startActivityForResult anstelle von startActivity starten, können Sie das Ergebnis der ersten Aktivität erwarten, indem Sie die Methode onActivityResult überschreiben und dann den ersten Fragmentinhalt von dort ändern.

Eine weitere gute und einfache Lösung ist die Verwendung von Bussen wie EventBus und otto. Sie sind gut dokumentiert.

0

In Ihrem Fragment Klasse:

public void foo(Object objectToPassFromActivity) { 
    // do what you want 
} 

in Ihrer Tätigkeit:

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentByTag(getFragmentTag(R.id.yourViewPagerId, fragmentPosition); 
fragment.foo(objectToPassFromActivity) 

Add-Methode:

private String getFragmentTag(int viewPagerId, int fragmentPosition) { 
    return "android:switcher:" + viewPagerId + ":" + fragmentPosition; 
} 

Sie den Link sehen können, dass ich in den Kommentaren hinzugefügt, mehr zu bekommen Einzelheiten.

+0

sollte Fragment-ID in der XML-Datei? –

+0

sollte ich Fragment-ID in der XML-Datei? –

+0

Wie kann ich Tag für das erste Fragment setzen ????????? –

Verwandte Themen