2016-06-17 26 views
0

4つのタブを持つタブ付きアクティビティがあります。各タブにはそれぞれ固有の断片があります。最初の3つのタブからデータを収集して分析し、分析したデータを4番目のタブのTextViewに送信したいとします。どうすればいい?タブ付きアクティビティのフラグメントからデータをフラグメントに送信

+0

のように、イベントバスを使用します。ここから答えの方法を使って、あなたが望むものを達成することができます:http://stackoverflow.com/questions/36503779/refresh-data-in-viewpager-fragment –

答えて

1

私は考えることができる2つのソリューション、

まず、あなたの活動のすべての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()); 
    } 
} 
関連する問題