본문 바로가기

나의 플랫폼

[Android] FragmentTabHost addTab 시 Bundle 전달

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

아래소스와 같이 Tab을 설정 할 때 Bundle을 설정 합니다.


private void addTab(String key, String data) {
Bundle args = new Bundle();
args.putString(key,data);
View tabView = mInflater.inflate(R.layout.fragment_layout, null, false);
mTabHost.addTab(mTabHost.newTabSpec(TAG).setIndicator(tabView)

, SomeFragment.class, args);

}


SomaFragment에서 이동한 후에는 getArguments 함수를 이용하여 데이터를 가지고 오면 됩니다.


String data = getArguments().getString("key");


## 중요사항


위와 같이 addTab으로 추가할 경우, 한번 정의된 Fragment의 Bundle 값이 변경이 되지 않기 때문에

이럴 경우는 직접 정의된 TAG를 통하여 Fragment를 가져온 후 데이터를 직접 넘겨주는 식으로도 가능하다.


아래는 Fragment를 Tag로 받아오는 방법 이다. 

getChildFragmentManager().findFragmentByTag(TAG);
getActivity().getSupportFragmentManager().findFragmentByTag(tabId)



참고하세요.