Java:如果只检查一次条件

Dic*_*ore 1 java conditional if-statement

我正在尝试使用以下代码在Java中创建一个简单的Android应用程序:

public class MainActivity extends Activity {

    //Declare variables
    boolean first = true;
    boolean secondorbefore = true;

        Button ClickMe = (Button) findViewById(R.id.clicker);

        ClickMe.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                //Check to see if this is the first click
                if (first = true) {
                first = false;
                // DO STUFF FOR FIRST CLICK
                } else if ((secondorbefore = true) {
                    //so this is the second click?
                    secondorbefore = false;
                // DO STUFF FOR SECOND CLICK                
                    } else {
                    //OK it's the third click or later
                // DO STUFF FOR THIRD OR LATER CLICKS
                }
            }
        });


    }
Run Code Online (Sandbox Code Playgroud)

但是,它似乎只运行if条件一次.它在第一个实例中执行代码,包括将secondorbefore变量设置为false,但后续的点击似乎什么都不做.代码OnClickListener正在后续点击中执行,但它只是没有运行条件语句.

Java的新手,所以我可能犯了一个非常明显的错误.

提前谢谢了.

Per*_*ror 6

暗示:

  • = 是一个赋值运算符.
  • == 是一个相等运算符.
  • 在if语句中使用赋值运算符会发生什么?
  • 在if语句中使用equalityoperator时会发生什么?