如何在android中显示片段

如何在android中显示片段,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,我正在使用ViewPager在Activity1上创建3个片段, 这是我的viewPager适配器: public class ViewPagerAdapter extends FragmentStatePagerAdapter { int mNumOfTabs; public ViewPagerAdapter(FragmentManager fm, int NumOfTabs) { super(fm); this.mNumOfTabs = N

我正在使用ViewPager在Activity1上创建3个片段,
这是我的viewPager适配器:

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

}
当Activity1打开时,它显示Fragment1。但我想改为显示Fragment2或Fragment3。

我如何才能做到这一点?

viewpager.setAdapter(适配器)之后添加这一行

viewPager.setCurrentItem(index);
索引取决于您,您有多少片段<代码>tabLayout.getTabCount()将返回选项卡计数。但指数是从0开始的


如果您有3个
Fragment
并且想要显示第三个
Fragment
,则必须使用
viewPager.setCurrentItem(2)

将viewpager的当前位置设置为所需位置,在您的情况下为2或3

 new Handler().post(new Runnable() {
                @Override
                public void run() {
                    mViewPager.setCurrentItem(desiredPos);
                }
            });
看更多


@1234abcd没问题,我想你得到了索引!