android应用程序中的ArrayIndexOutOfBoundsException

时间:2013-06-01 08:21:37

标签: java android eclipse imagebutton indexoutofboundsexception

我的应用程序中有一个ArrayIndexOutofBounds异常。我想在我的应用程序中放置一个前一个按钮。我的数组中有5个元素按钮循环。如何在用户点击元素[0]时这样做,它将循环回元素[4]而不是转到[-1]导致异常?

我的代码如下:

mPrevButton = (ImageButton)findViewById(R.id.prev_button);
mPrevButton.setOnClickListener (new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        mCurrentIndex = (mCurrentIndex - 1) % mQuestionBank.length;
        mIsCheater = false;
        updateQuestion();
    }
}

这样做的正确方法是什么:

mCurrentIndex = (mCurrentIndex - 1) % mQuestionBank.length;

2 个答案:

答案 0 :(得分:5)

保持简单?

if (mCurrentIndex > 0)
    mCurrentIndex--;
else
    mCurrentIndex = mQuestionBank.length-1;

答案 1 :(得分:5)

尝试以这种方式增加:

mCurrentIndex = (mCurrentIndex + mQuestionBank.length - 1)% mQuestionBank.length;