我有一个在下面单击按钮时运行的倒数计时器,是代码。
static public void starttimer() {
t1 = date3 - date;
progressbarstatus ();
starttimercd ();
timer = new CountDownTimer ( totalSeconds, 1000 ) {
@Override
public void onTick(long millisUntilFinished) {
if (isclicked = true) {
secondc = totalSeconds - millisUntilFinished;
mEndtime = System.currentTimeMillis () + secondc;
countdowntext ();
}
if (isclicked = false) {
secondc = System.currentTimeMillis () - mEndtime;
countdowntext ();
timer.cancel ();
}
percentage = Math.round ( secondc / t1 * 100 );
tvp.setText ( percentage + "%" );
}
@Override
public void onFinish() {
timerrunning = false;
}
}.start ();
}
我已经尝试将布尔值放在侦听器上。
btn_start.setOnClickListener ( new View.OnClickListener () {
@Override
public void onClick(View v) {
isclicked = true;
starttimer ();
}
});
问题是,当我运行应用程序时,默认情况下计时器正在运行。是否有人对如何使计时器仅在单击按钮时运行以及如何将布尔值放在onclicklisterner上有任何解决方案?感谢任何人都可以提供帮助。
您不应该在onclick函数中放入布尔值。如果放在starttimer之外。当布尔值为true时,此后无论布尔值是true还是false,函数都将运行。