我试图弄清楚如何从活动导航到由单独活动托管的片段。
更复杂的是,目标活动主持一个带有3个独立片段的TabLayout / ViewPager。以下是与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);
}
}
}
我认为我必须使用一个intent,但是我感到困惑的是我如何确保活动加载NewFragment而不是选项卡中的第一个片段TrendingFragment。
答案 0 :(得分:2)
你可以尝试这样的事情。
在第一项活动中:
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);
希望有所帮助