【发布时间】:2020-08-22 23:37:10
【问题描述】:
我有这个倒计时计时器,当点击下面的按钮时运行是代码。
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 上的解决方案?如果有人可以提供帮助,我们将不胜感激。
【问题讨论】:
-
在oncreate中将boolean设为false,点击后设为true
-
已经完成了,但计时器仍在运行。除了布尔值还有其他解决方案吗?