2016-06-17 12 views
0

Ich habe eine Aktivität mit Registerkarten mit vier Registerkarten. Jede Registerkarte hat ihr eigenes eindeutiges Fragment. Ich möchte Daten von den ersten drei Registerkarten sammeln, analysieren und die analysierten Daten an eine TextView in der vierten Registerkarte senden. Wie würde ich das tun?Senden von Daten an ein Fragment von einem Fragment in einer Aktivität mit Registerkarten

+0

Beachten Sie, dass Sie nur benötigen, um Daten in einem Fragment zu aktualisieren, wenn es die eine ist zur Zeit betrachtet wird. Sie können die Methode aus der Antwort hier verwenden, um zu erreichen, was Sie wollen: http://stackoverflow.com/questions/36503779/refresh-data-in-viewpager-fragment –

Antwort

1

Es gibt zwei Lösungen, die ich denken kann,

Erstens hält eine Referenz aller vier Registerkarten in Ihrer Tätigkeit. Aus Ihren Fragmenten können Sie mit getActivity() auf die Aktivität zugreifen und die entsprechende Update-Funktion aufrufen.

public class YourActivity { 
    ... 
    public void updateFourthFragment(Object data) { 
     fourthFragment.update(); 
    } 
} 

public class FirstFragment { 
    ... 
    public void onInput() { 
     ((YourActivity) getActivity()).updateFourthFragment(input); 
    } 
} 
... 

Zweitens, ein Ereignis Bus benutzen, wie http://square.github.io/otto/

public class FirstFragment { 
    ... 
    public void onInput() { 
     bus.post(new InputEvent(input)); 
    } 
} 

public class FourthFragment { 
    ... 
    @Subscribe 
    public void onInputEvent(InputEvent event) { 
     handleInput(event.getInput()); 
    } 
} 
Verwandte Themen