滑动过去的最后一个标签应用程序崩溃

时间:2013-04-29 20:03:36

标签: crash actionbarsherlock android-viewpager

我正在使用带有ViewPager的ActionBarSherlock,导航模式设置为显示我的标签。我有3个标签可以正常工作。我的问题是,如果我尝试滑动到不存在的第4个选项卡,它会崩溃我的应用程序。我不确定这是怎么回事,需要一些帮助。这是我在应用程序中的第一次尝试,欢迎任何反馈。

片段:

    private ViewPager mViewPager;

private SherlockFragment mFragCodes;
private SherlockFragment mFragDeals;
private SherlockFragment mFragProgInfo;
private SherlockFragment mFragTemp;

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

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(new MainPagerAdapter(
            getSupportFragmentManager()));
    mViewPager.setOnPageChangeListener(this);
    //mViewPager.setPageMarginDrawable(R.drawable.border);
    mViewPager.setPageMargin(16);

    final ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    actionBar.addTab(actionBar.newTab()
            .setText(R.string.tab_codes_title)
            .setTabListener(this));
    actionBar.addTab(actionBar.newTab()
            .setText(R.string.tab_deals_title)
            .setTabListener(this));
    actionBar.addTab(actionBar.newTab()
            .setText(R.string.tab_program_info_title)
            .setTabListener(this));

和我的pageradapter:

    private class MainPagerAdapter extends FragmentPagerAdapter {
    public MainPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public SherlockFragment getItem(int position) {


        switch (position) {
        case 0:
            return (mFragCodes = new frag_codes());

        case 1:
            return (mFragDeals = new frag_deals());

        case 2:
            return (mFragProgInfo = new frag_programming());

        }
        //if nothing is returned
        return mFragTemp = new SherlockFragment();
    }


    @Override
    public int getCount() {
         return R.string.tab_count;
    }
}

我应该包括哪些其他信息?

2 个答案:

答案 0 :(得分:1)

转到Swipey Tabs example以及ActionBarSherlock库(FragmentTabsPager)附带的samples文件夹中包含的示例,以查看选项卡适配器的工作示例。 此外,请包含其他信息,主要是来自例外的堆栈跟踪,布局以及包括声明和导入在内的完整类。

据我所知,您错过了implements部分应该实施的ActionBar.TabListener, ViewPager.OnPageChangeListener

答案 1 :(得分:1)

刚刚提出:

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