我有一个数组和两个按钮(Next和Previous)。
当您单击下一个按钮时,mCurrent索引会更新(++),并且Cursor指向列表中的下一项,而上一个按钮则相反。
String[] fruits = {"Pineaple", "Orange", "Banana", "Apple"};
int mCurrentIndex = 0;
这是按钮的事件处理程序:
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCurrentIndex = (mCurrentIndex + 1) % fruits.length;
updateFruit();
}
});
prevButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCurrentIndex = (mCurrentIndex - 1);
if(mCurrentIndex < 0){
mCurrentIndex = fruits.length - 1;
}
updateFruit();
}
});
该代码正常工作。但是我想找出一种方法,通过消除if语句并替换为模数的倒数(即如果存在的话)来重构前一个Button的代码,使其类似于nextButton代码(使其更短)。而且仍然可以正常工作。
在每种情况下,mCurrentIndex到达数组末尾时都会重置。
最佳答案
该代码正常工作。但我想找出是否可以
是一种将previousButton代码重构为类似于nextButton的方法
代码(使其更短),通过消除if语句并替换
像模的倒数(如果存在)
仍然可以正常工作。
mCurrentIndex = (mCurrentIndex + fruits.length - 1) % fruits.length;
应该那样做