我将 ActionBarSherlock 与 ViewPager 一起使用,导航模式设置为显示我的选项卡。我有 3 个工作正常的选项卡。我的问题是,如果我尝试滑动到不存在的第四个选项卡,它会使我的应用程序崩溃。我不确定这是在哪里发生的,需要一些帮助。这是我第一次尝试应用程序,欢迎任何反馈。
片段:
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));
和我的页面适配器:
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;
}
}
我应该包括任何其他信息吗?