마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ViewPager에서 한 페이지의 fragment를 변경하고 싶어요.

0 추천
현재 ViewPager의 페이지 구성이

1 : TestFragment1

2 : TestFragment2

3 : TestFragment3

이렇게 되어 있습니다.

여기서 TestFragment3에 있는 버튼을 누르면..

위의 페이지 구성을

1: TestFragment1

2 : TestFragment2

3 : TestFragment4

이렇게 변경하고 싶은데요...

어댑터쪽 함수를 봐도.. FragmentActivity함수를 봐도 도통 감이안 잡힙니다..

도와주세요 ㅠㅠ
익명사용자 님이 2015년 1월 5일 질문

1개의 답변

0 추천
 
채택된 답변
SparseArray<Fragment> views = new SparseArray<Fragment>();
		
mPollutantFragment = new SectionPollutantFragment();
mMeanFragment = new SectionMeanFragment();
		
views.put(0, mPollutantFragment);
views.put(1, mMeanFragment);
		
VewPagerAdapter mPagerAdapter = new VewPagerAdapter(getSupportFragmentManager(), views);

mViewPager.setAdapter(mPagerAdapter);

소스가 없으니 제 소스 기준으로 설명드리면..

Fragment 들을 생성해서 위 소스의 views 같은 곳에 넣고 adapter 를 생성해서 ViewPager에 붙이겠죠?

TestFragment3의 버튼을 누를 때 views를 clear 하고, TestFragment1, TestFragment2, TestFragment4를 넣고

(또는 TestFragment3만 remove 하고 TestFragment4를 put)

어댑터를 notifyDataSetChanged 해주면 가능하지 않을까 합니다.

가랑비 (10,530 포인트) 님이 2015년 1월 5일 답변
오.. 답변에서 힌트를 얻어서 해결했습니다.

기존 1,2,3 Fragment를 ViewPager에 올리는 Adapter 를 그대로 복사하고
1,2,4 Fragment를 올리도록 수정한 후에,
viewPager.setAdapter(새로운 Adapter);
하니까 원하는대로 잘 동작하네요 ㅎㅎ

감사합니다.
...