试图在PageViewer结束时启动意图。应用程序崩溃

时间:2015-12-13 03:22:44

标签: android android-fragments

因此,当用户浏览每个页面时,我想要在最后发布一个意图;显示主要活动。现在我将页数设置为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;
    }
}
}

1 个答案:

答案 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[] textint[] images包含3个元素(来自索引0..2)。

这会在运行时导致ArrayIndexOutOfBoundsException并使应用程序崩溃。

相关问题