我有一个数组和两个按钮(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;


应该那样做

10-02 04:29