Java android应用程序中的ArrayIndexOutOfBoundsException
我的应用程序中存在ArrayIndexOutofBounds异常。我想在我的应用程序中添加上一个按钮。我的数组中有5个元素,按钮在其中循环。当用户点击元素[0]时,它将返回到元素[4],而不是返回到引起异常的[-1],我该如何使其如此 我的代码如下: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() {
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
这是一种棘手的方法,但我宁愿避免使用这样的公式,因为它很难理解。