数组递减的索引

时间:2014-01-09 10:34:24

标签: java android

所以我坚持这个问题几个小时。我基本上有一组textview,想要在它们之间滑动。我所拥有的数组是从0到19.事实上,递增工作完美,但是当我减去[0]的值时,索引会变为[-1],因此它会崩溃。

我需要做一些事情,以便当我得到索引[0]并递减索引以跳回[19]。

这是代码,我尝试使用if else。非常感谢!!!

    mPreviousButton = (Button) findViewById(R.id.prev_btn);
    mPreviousButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            mCurrentIndex = (mCurrentIndex - 1) % mShowTipsTextBank.length;
            if (mCurrentIndex < 19) {
                mCurrentIndex = 19;
                updateQuestion();
            } else

                updateQuestion();

        }
    });

4 个答案:

答案 0 :(得分:0)

mPreviousButton = (Button) findViewById(R.id.prev_btn);
    mPreviousButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mCurrentIndex--;
            if (mCurrentIndex < 0)
                mCurrentIndex = mShowTipsTextBank.length - 1;
            updateQuestion();
        }
    });

答案 1 :(得分:0)

问题是if (mCurrentIndex < mShowTipsTextBank.length) {始终为true

您可以检查当前索引是否为0并将其直接设置为数组的最后一个索引,否则只是递减它

@Override
public void onClick(View v) {
    mCurrentIndex = (mCurrentIndex == 0 ? mShowTipsTextBank.length-1 : (mCurrentIndex - 1));
    updateQuestion();    
}

请注意,模运算是无用的,因为mCurrentIndex应始终低于数组的length(如果你在增加它时进行了适当的检查)。

答案 2 :(得分:0)

if(mCurrentIndex == 0){
    mCurrentIndex = 19;
}else{
    mCurrentIndex--;
}

答案 3 :(得分:0)

 mCurrentIndex = (mCurrentIndex - 1) % mShowTipsTextBank.length;
        if (mCurrentIndex < 0) {
            mCurrentIndex = 19;
            updateQuestion();
        } else
           {
            updateQuestion();
           }