1

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();

誰かが私を正しい方向に向けるのを助けることができますか?

4

1 に答える 1

0

誰かが私を正しい方向に向けるのを助けることができますか?

これはサポートされていません。FragmentPagerAdapterフラグメントでのみ機能する では、それは確かに不可能です。

于 2012-11-10T12:09:55.573 に答える