android启动fragmentAcrivity中的特定选项卡

时间:2015-11-26 17:08:53

标签: android android-fragments android-viewpager android-tabs fragmentstatepageradapter

我有一个扩展FragmentActivity的活动,我使用自定义FragmentStatePagerAdapter扩展FragmentStatePagerAdapter,SlidingTabLayout和pagerView。

在某些情况下,我希望我的fragmentActivity能够在特定的(第三个,如果重要的话)标签上开始。 我已经尝试了很多关于我在SO上发现但没有工作的建议。当我尝试使用" pager.setCurrentItem(3)"问题是onCreateView从未调用该片段,因此没有正确分配所有对象和值。

感谢您的帮助!

编辑:添加更多信息

这是我启动适配器的方式:

    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this, NewsTab.class.getName()));
    fragments.add(Fragment.instantiate(this, PhotosTab.class.getName()));
    fragments.add(Fragment.instantiate(this, AboutTab.class.getName()));
    fragments.add(Fragment.instantiate(this, NextTab.class.getName()));
    adapter =  new ProtestViewPagerAdapter(getSupportFragmentManager(),Titles, NumOfTabs, fragments);

这是我的查看寻呼机适配器:

public class ProtestViewPagerAdapter extends FragmentStatePagerAdapter {

public final String TAG = "PRTST_V_PGR_ADPTR";
private CharSequence Titles[];
private int NumbOfTabs;
private List<Fragment> fragments;


// Build a Constructor and assign the passed Values to appropriate values in the class
public ProtestViewPagerAdapter(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabs,
                               List<Fragment> fragments) {
    super(fm);

    this.fragments = fragments;
    this.Titles = mTitles;
    this.NumbOfTabs = mNumbOfTabs;

}

//This method return the fragment for the every position in the View Pager
@Override
public Fragment getItem(int position) {
    return fragments.get(position);
//        switch (position){
//            case 0:
//                NewsTab news  = new NewsTab();
//                return news;
//            case 1:
//                PhotosTab photos = new PhotosTab();
//                return photos;
//            case 2:
//                AboutTab about = new AboutTab();
//                return about;
//            case 3:
//                NextTab next = new NextTab();
//                return next;
//            default:
//                return null;
//        }
}

// This method return the titles for the Tabs in the Tab Strip

@Override
public CharSequence getPageTitle(int position) {
    return this.Titles[position];
}

// This method return the Number of tabs for the tabs Strip

@Override
public int getCount() {
    return this.NumbOfTabs;
}
}

每个选项卡都实现了只有

的FragmentInterface
void fragmentBecameVisible();

和&#34;标签&#34;也扩展了&#34; MyBaseTab&#34;扩展了android.support.v4.app.Fragment

0 个答案:

没有答案