【问题标题】:How do you implement a FragmentActivity into your FragmentPagerAdapter?如何在 FragmentPagerAdapter 中实现 FragmentActivity?
【发布时间】:2025-12-27 02:15:06
【问题描述】:

我的课程中有一个部分用于处理要为 FragmentPagerAdapter 加载的片段。现在它可以很好地加载片段,但现在我想实现一个 FragmentActivity 并且我在确定如何创建它时遇到了问题,因为我不能使用“newinstance”,因为它的 Activity 类型,而且最重要的是,我不知道如何称该 FragmentActivity 与通过“newinstance”方法仅加载 Fragment 不同。我的第二个标签是我想扩展到 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();

有人可以帮我指出正确的方向吗?

【问题讨论】:

    标签: android listview android-activity listactivity


    【解决方案1】:

    有人可以帮我指出正确的方向吗?

    不支持。 FragmentPagerAdapter 肯定是不可能的,它只适用于片段。

    【讨论】:

    • 我同意,我认为您需要将 FragmentActivity 转换为 Fragment。
    • 但该活动必须是一个 FragmentActivity,因为需要设置只有在将其扩展到 FragmentActivity 时才有可能进行的设置
    • @user1811306:您不能将活动放入ViewPager包含ViewPager 的活动可以是FragmentActivity,如果ViewPager 将包含片段,则必须是FragmentActivity