2016-06-17 1 views
0

4 개의 탭이있는 탭 활동이 있습니다. 각 탭에는 고유 한 조각이 있습니다. 처음 세 탭에서 데이터를 수집하고 분석 한 다음 분석 된 데이터를 네 번째 탭의 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()); 
    } 
}