所以我坚持这个问题几个小时。我基本上有一组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();
}
});
答案 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();
}