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();
}