2016-12-01 119 views
1

我想弄清楚如何从活动导航到由单独的活动托管的片段。从活动导航到TabLayout/ViewPager片段

更复杂的是,目标活动托管一个带有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); 
     } 
    } 
} 

我想我将不得不使用的意图,但在那里我感到困惑,是我会怎样确保活动加载NewFragment而不是选项卡中的第一个片段,即TrendingFragment。

+0

下面的答案应该为你做吧! – Eenvincible

回答

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

希望它可以帮助

+0

我同意,这工作,但它可能值得检查,如果捆绑预先确定是否加载第一个选项卡或来自上述活动的所需选项卡 – tccpg288