【发布时间】:2016-11-17 17:01:10
【问题描述】:
我有一个数组和两个按钮( Next 和 Previous )。 当您单击下一个按钮时,mCurrent 索引会更新(++),并且光标指向列表中的下一项,而上一个按钮则相反。
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();
}
});
代码运行正常。但我想知道是否有办法将previousButton代码重构为类似于nextButton代码(使其更短),通过消除if语句并替换为模数的倒数(即如果它存在)它仍然可以正常工作。
在每种情况下,当 mCurrentIndex 到达数组末尾时都会重置。
【问题讨论】: