2016-06-17 125 views
0

我有一個帶有四個選項卡的選項卡式活動。每個選項卡都有其自己的唯一片段。我想從前三個選項卡收集數據,分析它,並將分析的數據發送到第四個選項卡中的TextView。我將如何做到這一點?從選項卡式活動中的片段發送數據到片段

+0

請記住,你只需要在一個片段來更新數據,如果它是當前正在觀看的一個。你可以使用這裏的答案來實現你想要的東西:http://stackoverflow.com/questions/36503779/refresh-data-in-viewpager-fragment –

回答

1

有兩種解決方案,我能想到的,

首先,讓所有的4個選項卡的引用您的活動。從您的片段中,您可以使用getActivity()訪問該活動並調用相關更新功能。

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

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

其次,使用事件總線,如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()); 
    } 
}