안녕하세요, 현재 ViewPager와 TabLayout을 Fragment 5개와 함께 쓰고 있습니다.
궁금한 것이 1번째, 3번째 화면에서 버튼을 누르면 2번째 화면에 data가 써지고 갱신이 되어야되는데
ViewPager의 특성상 앞뒤 페이지를 미리 그려놓기 때문에
새로 View를 그리기 위해서 getItemPosition()을 사용해 return POSITION_NONE을 해야한다고 봤습니다.
헌데 코드를 어디에 어떻게 바꿔서 넣어야할지 모르겠습니다. 그냥 넣으면 갱신이 안됩니다.
그리고 많이들 notifyDataSetChanged() 쓰시던데, 이것도 써야하나요?
쓰면 어디에 어떻게 써야할지 알려주세요.
제 Adapter 코드입니다.
public class TabPagerAdapter extends FragmentStatePagerAdapter {
private int tabCount;
public TabPagerAdapter(FragmentManager fm, int tabCount){
super(fm);
this.tabCount = tabCount;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public Fragment getItem(int position){
switch (position){
case 0:
HomeFragment fragment1 = new HomeFragment();
return fragment1;
case 1:
AccessLogFragment fragment2 = new AccessLogFragment();
return fragment2;
case 2:
RegistrationFragment fragment3 = new RegistrationFragment();
return fragment3;
case 3:
SettingFragment fragment4 = new SettingFragment();
return fragment4;
case 4:
HelpFragment fragment5 = new HelpFragment();
return fragment5;
default:
return null;
}
}
@Override
public int getCount(){
return tabCount;
}
}