ViewPager でフラグメントを使用する多くのアプリケーションを知っています。私のアプリケーションでも必要です。これを除外する方法についてのガイドは見つかりませんでした。そして、ここに私のコードがあります:
public class MainActivity extends FragmentActivity {
Vector<Fragment> fragments;
ViewPager viewPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
viewPager = (ViewPager) findViewById(R.id.pager);
fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
viewPager.setOffscreenPageLimit(fragments.size());
PagerAdapter pagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(0);
}
class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
}
しかし、このコードはうまく機能しません。Fragment1 で getActivity() return null に関するエラーが発生することがあります。このサイトや他のサイトからこのエラーに関する多くの投稿を読みましたが、これが悪い方法であることがわかりました。フラグメントの保存には Vector を使用してください。しかし、フラグメントを使用して ViewPager を適切に実行する方法はまだわかりません。助けてください。