我在我的应用的MainActivity
中使用带有3个标签的视图寻呼机来显示网格图像。我为所有3个标签设置了一个MovieFragment
,并且每次更改标签时,我使用FragmentsPagerAdapter
创建MovieFragment
的新实例。
//FragmentsPagerAdapter method
@Override
public Fragment getItem(int position) {
switch (position){
case 0: return MoviesFragment.newInstance(buildUrl(Utility.POPULAR_URL));
case 1: return MoviesFragment.newInstance(buildUrl(Utility.RATED_URL));
case 2: return MoviesFragment.newInstance("favorite");
default: return null;
}
}
//Fragment method
public static MoviesFragment newInstance(String uri){
MoviesFragment fragment = new MoviesFragment();
Bundle bundle = new Bundle();
bundle.putString("fragment", uri);
fragment.setArguments(bundle);
return fragment;
}
现在我在我的应用程序中获得了不同的结果,所以我调试了这个方法,我发现它在选择选项卡之前调用方法,即当我打开应用程序时,它会为case 0 and case 1
创建实例,当我转到{{1}时它为second tab
创建实例。
现在在我的第二个选项卡中,当我对数据库进行更改并尝试在第三个选项卡中进行更改时,不会反映,因为在选择第二个选项卡时它已经创建了case 2
的实例。
我该如何解决这个问题?