Java android应用程序中的ArrayIndexOutOfBoundsException

Java android应用程序中的ArrayIndexOutOfBoundsException,java,android,eclipse,imagebutton,indexoutofboundsexception,Java,Android,Eclipse,Imagebutton,Indexoutofboundsexception,我的应用程序中存在ArrayIndexOutofBounds异常。我想在我的应用程序中添加上一个按钮。我的数组中有5个元素,按钮在其中循环。当用户点击元素[0]时,它将返回到元素[4],而不是返回到引起异常的[-1],我该如何使其如此 我的代码如下: mPrevButton = (ImageButton)findViewById(R.id.prev_button); mPrevButton.setOnClickListener (new View.OnClickListener() {

我的应用程序中存在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;
保持简单

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

尝试以这种方式增加:

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

如果((mCurrentIndex-1)>=0{mCurrentIndex=(mCurrentIndex-1)%mQuestionBank.length;}是的,早期的topicstarter在
mCurrentIndex==0
的情况下得到了ArrayIndexOutOfBounds,因为下面的“余数运算的结果只有在红利为负时才可能为负,只有红利为正时才可能为正;”,因此
(mCurrentIndex-1)%mQuestionBank.length==-1%mQuestionBank.length==-1
这是一种棘手的方法,但我宁愿避免使用这样的公式,因为它很难理解。