Java if语句中的倒计时未启动

Java if语句中的倒计时未启动,java,android,Java,Android,我的问题在底部,我有一个布尔值,正在进行,这是错误的。按一下按钮,它应该变为真,然后启动倒计时计时器,但计时器没有启动。计时器在代码中的其他位置工作。对不起,如果是一团糟,我是新手 public int counter; public boolean ongoing = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我的问题在底部,我有一个布尔值,正在进行,这是错误的。按一下按钮,它应该变为真,然后启动倒计时计时器,但计时器没有启动。计时器在代码中的其他位置工作。对不起,如果是一团糟,我是新手

public int counter;
public boolean ongoing = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //0-59 number picker to represent seconds
    final NumberPicker secPicker = (NumberPicker) findViewById(R.id.secPicker);
    secPicker.setMaxValue(59);


    Button btnStart = (Button) findViewById(R.id.btnStart);
    Button btnSet = (Button) findViewById(R.id.btnSet);
    Button btnPause = (Button) findViewById(R.id.btnPause);
    final TextView label = (TextView) findViewById(R.id.txtCount);


    //sets the time chosen to timer with button press btnSet
    btnSet.setOnClickListener(
            new View.OnClickListener() {
                public void onClick(View v) {
                    counter = secPicker.getValue();
                    label.setText(String.valueOf(counter));
                }
            }
    );


    //starts timer from selected time, from number picker, with btnStart
    btnStart.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            ongoing = true;


        }
    });
    //disables, not worried about this yet
    btnPause.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            ongoing = false;


        }
    });


        //supposed to turn on a timer with button press btnStart, but it does nothing this is my problem.
        if (ongoing == true) {
            //any replacement for 9999999, as an infinite value?
            new CountDownTimer(999999999, 1000) {
                public void onTick(long millisUntilFinished) {
                    label.setText(String.valueOf(counter));
                    counter--;
                    if (counter == -1) {
                        counter = 0;
                        cancel();
                    }
                }

                public void onFinish() {

                }

            }.start();

        }
    }
}
在单击它将被调用的任何内容之前,您已经将上述代码放入了oncreate中

您应该在btnStart click事件中编写以下代码,或者创建一个方法并从中调用

//应该用按钮按下btnStart来打开计时器,但它什么也没做这是我的问题

if (ongoing == true) {
    //any replacement for 9999999, as an infinite value?
    new CountDownTimer(999999999, 1000) {
        public void onTick(long millisUntilFinished) {
            label.setText(String.valueOf(counter));
            counter--;
            if (counter == -1) {
                counter = 0;
                cancel();
            }
        }

        public void onFinish() {

        }

    }.start();

}

希望这些能帮助你。

为什么你要这样写-如果(持续==true)只需加上如果(持续),不需要等于运算符
if (ongoing == true) {
    //any replacement for 9999999, as an infinite value?
    new CountDownTimer(999999999, 1000) {
        public void onTick(long millisUntilFinished) {
            label.setText(String.valueOf(counter));
            counter--;
            if (counter == -1) {
                counter = 0;
                cancel();
            }
        }

        public void onFinish() {

        }

    }.start();

}