因此,当用户浏览每个页面时,我想要在最后发布一个意图;显示主要活动。现在我将页数设置为4,这样当用户滑动到第4页时,用户就会被发送到我的主要活动。但是我的应用程序崩溃了
片段活动
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('hey this worked');
});
router.get('/another/route', function(req, res, next) {
res.json({ hello: 'world' });
});
module.exports = router;
片段
public class ScreenSlideActivity extends FragmentActivity {
private static final int NUM_PAGES = 4;
ViewPager mPager;
private PagerAdapter mPagerAdapter;
@Override
public void onBackPressed() {
int pos = mPager.getCurrentItem();
if (pos == 0) {
super.onBackPressed();
} else mPager.setCurrentItem(pos - 1);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen_slide);
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new adapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
}
private class adapter extends FragmentStatePagerAdapter {
public adapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if (position == 4) {
Intent intent = new Intent(getApplication(), MainActivity.class);
startActivity(intent);
}
return ScreenSlidePageFragment.initialize(position);
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
}
答案 0 :(得分:0)
更改验证以将Intent
启动到3而不是4。
请记住,列表开始计算0中的索引。
@Override
public Fragment getItem(int position) {
if (position == 3) { // position 3 is the page #4
Intent intent = new Intent(getApplication(), MainActivity.class);
startActivity(intent);
finish();
}
return ScreenSlidePageFragment.initialize(position);
}
您收到的错误是您正在呼叫ScreenSlidePageFragment.initialize(3)
。在ScreenSlidePageFragment
中,String[] text
和int[] images
包含3个元素(来自索引0..2)。
这会在运行时导致ArrayIndexOutOfBoundsException
并使应用程序崩溃。