我的应用程序中有一个ArrayIndexOutofBounds异常。我想在应用程序中放置上一个按钮。我的数组中有5个元素,按钮循环显示。当用户点击element [0]时,它将如何循环回到element [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;

07-26 07:17