gpt4 book ai didi

android - 倒计时倒数计数器

转载 作者:行者123 更新时间:2023-11-29 19:07:09 27 4
gpt4 key购买 nike

更新

这已经解决了。我所做的是:-

sec = (time/1000)%60;

if (sec == 0){
min++;
if (min > 59){
min = 0;
hour++;
}

然后设置 min = -1 这样初始的 0 就不会将 min 添加到计时器。


我需要一个从 0 开始到无限时间直到用户选择一个选项的计数器。

所以,我所做的是用一些逻辑实现一个 CountDownTimer,这样我就可以实现我想要的。

因此,我将 6 小时作为最长时间,直到计时器继续运行。但我遇到的问题是,一旦秒数达到 59,然后它会在我编程时重置为 0,但随后它保持为 0,并且最小值开始按秒增加。请帮忙

这是我的代码:-

public void newCountTimer(){
countdowntimer = new CountDownTimer(21600000,1000) {
@Override
public void onTick(long millisUntilFinished) {
long time = 21600000 - millisUntilFinished;
sec = time/1000;
if (sec > 59){
sec = 0;
min++;
if (min > 59){
min = 0;
hour++;
}
}
if (sec < 10) {
if (min < 10) {
if (hour < 10) {
timer_box.setText("0" + hour + ":0" + min + ":0" + sec);
} else {
timer_box.setText("" + hour + ":0" + min + ":0" + sec);
}
} else {
if (hour < 10) {
timer_box.setText("0" + hour + ":" + min + ":0" + sec);
} else {
timer_box.setText("" + hour + ":" + min + ":0" + sec);
}
}
} else {
if (min < 10) {
if (hour < 10) {
timer_box.setText("0" + hour + ":0" + min + ":" + sec);
} else {
timer_box.setText("" + hour + ":0" + min + ":" + sec);
}
} else {
if (hour < 10) {
timer_box.setText("0" + hour + ":" + min + ":" + sec);
} else {
timer_box.setText("" + hour + ":" + min + ":" + sec);
}
}
}
}

@Override
public void onFinish() {

}
}.start();
}

最佳答案

问题是你的sec变量总是越来越高

 sec = time/1000;
if (sec > 59){

所以 sec 将从 59 到 60 到 61 到 62 等等,因此总是大于 59。总是增加导致 min 在 1 分钟后总是增加

我的建议是在您的sec 计算中添加 mod 60

  sec = (time/1000)%60;
if (sec == 0){
min++;
...

关于android - 倒计时倒数计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46774195/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com