2016-07-05 47 views
2

片段我使用ViewPager创建3个片段的活性1,
这是我viewPager适配器:如何显示在Android的

public class ViewPagerAdapter extends FragmentStatePagerAdapter { 
    int mNumOfTabs; 

    public ViewPagerAdapter(FragmentManager fm, int NumOfTabs) { 
     super(fm); 
     this.mNumOfTabs = NumOfTabs; 
    } 

    @Override 
    public Fragment getItem(int position) { 

     switch (position) { 
      case 0: 
       Fragment1 tab1 = new Fragment1(); 
       return tab1; 
      case 1: 
       Fragment2 tab2 = new Fragment2(); 
       return tab2; 
      case 2: 
       Fragment3 tab3 = new Fragment3(); 
       return tab3; 
      default: 
       return null; 
     } 
    } 

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

} 

这是活动时间:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_1); 

    TabLayout tab_layout = (TabLayout) findViewById(R.id.tab_layout); 
    tab_layout.addTab(tab_layout.newTab().setText("Frag1")); 
    tab_layout.addTab(tab_layout.newTab().setText("Frag2")); 
    tab_layout.addTab(tab_layout.newTab().setText("Frag3")); 

    final ViewPager view_pager = (ViewPager) findViewById(R.id.viewpager); 

    final ViewPagerAdapter adapter = new ViewPagerAdapter 
      (getSupportFragmentManager(), tab_layout.getTabCount()); 

    view_pager.setAdapter(adapter); 

    view_pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tab_layout)); 

    tab_layout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 

     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      view_pager.setCurrentItem(tab.getPosition()); 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 
     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 
     } 
    }); 

} 

当活性1是开放的它显示Fragment1。但我想要显示Fragment2或Fragment3。
我该怎么做?

回答

2

加入这一行viewpager.setAdapter(adapter);后:

viewPager.setCurrentItem(index); 

指数取决于你有多少片段你。 tabLayout.getTabCount();会返回你标签数量。但是,指数从0

如果你有3 Fragment并想显示第三Fragment必须使用viewpager的viewPager.setCurrentItem(2);

+1

太感谢你了 – 1234abcd

+0

@ 1234ABCD没有问题的,我觉得你得到了什么是指数! –