Java 从“活动”导航到TabLayout/ViewPager片段
我试图找出如何从一个活动导航到一个由单独的活动托管的片段 更复杂的是,目标活动承载一个包含3个独立片段的TabLayout/ViewPager。以下是与TabLayout/ViewPager关联的适配器的代码。我正在尝试导航到TabLayout/ViewPager的“NewFragment”部分:Java 从“活动”导航到TabLayout/ViewPager片段,java,android,android-fragments,Java,Android,Android Fragments,我试图找出如何从一个活动导航到一个由单独的活动托管的片段 更复杂的是,目标活动承载一个包含3个独立片段的TabLayout/ViewPager。以下是与TabLayout/ViewPager关联的适配器的代码。我正在尝试导航到TabLayout/ViewPager的“NewFragment”部分: public class SectionPagerAdapter extends FragmentPagerAdapter { public SectionPagerAdapter(Fra
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);
}
}
}
我认为我必须使用意图,但我感到困惑的是如何确保活动加载新片段,而不是选项卡中的第一个片段TrendingFragment。您可以尝试这样的方法 在第一项活动中:
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);
希望有帮助下面的答案可以帮到你!我同意,这是可行的,但是可能需要事先检查bundle是否为null,以确定是加载第一个选项卡还是加载来自上述活动的所需选项卡