2016-12-01 13 views
1

アクティビティーから別のアクティビティーによってホストされるフラグメントへのナビゲート方法を理解しようとしています。アクティビティーからTabLayout/ViewPagerフラグメントへのナビゲート

宛先アクティビティは3つの別々のフラグメントを持つTabLayout/ViewPagerをホストします。次に、TabLayout/ViewPagerに関連付けられたアダプタのコードを示します。私は意図を使用する必要がと思うだろう

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

、しかしどこ私は混乱してしまい、私は活動がロードされていることを確認する方法を次のとおりです。私はTabLayout/ViewPagerの「NewFragment」セクションに移動しようとしていますタブの最初のフラグメントの代わりにNewFragment、TrendingFragment。

+0

答えはあなたのためにそれを行う必要があり役に立てば幸い! – Eenvincible

答えて

1

あなたはこのようなものを試すことができます。最初の活動で

:第二の活動のInt

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

関連する問題