0

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

4

1 に答える 1

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());
    }
}
于 2016-06-17T02:41:56.577 に答える