【问题标题】:Navigate From Activity to TabLayout / ViewPager Fragment从 Activity 导航到 TabLayout / ViewPager 片段
【发布时间】:2016-12-01 03:39:36
【问题描述】:

我试图弄清楚如何从一个活动导航到一个由单独活动托管的片段。

更复杂的是,目标 Activity 托管了一个 TabLayout / ViewPager,其中包含 3 个单独的片段。这是与 TabLayout / ViewPager 关联的适配器的代码。我正在尝试导航到 TabLayout / ViewPager 的“NewFragment”部分:

 public class SectionPagerAdapter extends FragmentPagerAdapter {

    public SectionPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return new TrendingFragment();
            case 1:
                return new FollowingFragment();
            case 2:
                return new NewFragment();
            default:
                return new TrendingFragment();
        }
    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        switch (position) {
            case 0:
                return getResources().getString(R.string.trending_text);
            case 1:
                return getResources().getString(R.string.following_text);
            case 2:
                return getResources().getString(R.string.new_text);
            default:
                return getResources().getString(R.string.trending_text);
        }
    }
}

我认为我必须使用意图,但我感到困惑的是如何确保活动加载 NewFragment 而不是选项卡中的第一个片段 TrendingFragment。

【问题讨论】:

  • 下面的答案应该为你做!

标签: java android android-fragments


【解决方案1】:

你可以试试这样的。

在第一个活动中:

int position = the fragment position in the target activity you want to open;
Intent intent = new Intent(getActivity(), TargetActivity.class);
intent.putExtra("fragmentPosition", position);
startActivity(intent);

在视图寻呼机初始化后进入第二个活动:

Intent intent = getIntent();
int fragmentPosition = intent.getIntExtra("fragmentPosition");
viewPager.setCurrentItem(fragmentPosition);

希望对你有帮助

【讨论】:

  • 我同意,这可行,但是可能值得事先检查捆绑包是否为空,以确定是加载第一个选项卡还是来自上述活动的所需选项卡
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-20
  • 2015-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多