FragmentPagerAdapter にロードするフラグメントを処理するためのクラスのセクションがあります。現在、フラグメントは問題なくロードされますが、今は FragmentActivity を実装したいと考えており、Activity のタイプから「newinstance」を使用できないため、その作成方法を理解するのに問題があり、その上、方法がわかりません。その FragmentActivity を、「newinstance」メソッドを介して Fragment だけをロードするのとは異なるものとして呼び出します。私の 2 番目のタブは、FragmentActivity に拡張したいタブです。
public class SectionsPagerAdapter extends FragmentPagerAdapter {
private Context _context;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
_context= getApplicationContext();
}
@Override
public Fragment getItem(int i) {
Fragment f = new Fragment();
switch(i){
case 0:
f=News.newInstance(_context);
break;
case 1:
f=Info.newInstance(_context);
break;
case 2:
f=Files.newInstance(_context);
break;
case 3:
f=Donate.newInstance(_context);
break;
}
/*
Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, i + 1);
fragment.setArguments(args);
*/
return f;
}
@Override
public int getCount() {
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0: return getString(R.string.title_section1).toUpperCase();
case 1: return getString(R.string.title_section2).toUpperCase();
case 2: return getString(R.string.title_section3).toUpperCase();
case 3: return getString(R.string.title_section4).toUpperCase();
}
return null;
}
}
私の推測では、フラグメントを切り替えるためだけに getitem メソッドを使用することはできず、次のようなものを使用する必要があると思います。
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.fragment_content, new BasicFragment());
ft.commit();
誰かが私を正しい方向に向けるのを助けることができますか?