gpt4 book ai didi

java - 使用计时器计算秒数并更新 Activity 中的字符串

转载 作者:行者123 更新时间:2023-11-29 23:12:39 26 4
gpt4 key购买 nike

我正在尝试在我的一项 Activity 中创建一个每秒触发一次的计时器,增加秒变量,然后如果秒 == 60 则将分钟增加一,如果分钟 == 60 则将小时增加一。

    _currentSeconds = _level.GetTimeSpentSeconds();
_currentMinutes = _level.GetTimeSpentMinutes();
_currentHours = _level.GetTimeSpentHours();

String currentTimeDisplay = _currentHours + "H " + _currentMinutes +"M " + _currentSeconds +"S";

_txtCurrentTime = findViewById(R.id.txtCurrentTime);
_txtCurrentTime.setText(currentTimeDisplay);

_totalGameTime = new Timer();
_totalGameTime.schedule(new TimerTick(), 1000);

}

private class TimerTick extends TimerTask{
TextView _txtCurrentTime = findViewById(R.id.txtCurrentTime);
public void run() {
_currentSeconds++;
TextView _txtCurrentTime = findViewById(R.id.txtCurrentTime);
if (_currentSeconds == 60){
_currentSeconds = 0;
_currentMinutes++;
}

if (_currentMinutes == 60){
_currentMinutes = 0;
_currentHours++;
}

String currentTimeDisplay = _currentHours + "H " + _currentMinutes +"M " + _currentSeconds +"S";
_txtCurrentTime.setText(currentTimeDisplay);
_level.SetTimeSpentSeconds(_currentSeconds);
_level.SetTimeSpentMinutes(_currentMinutes);
_level.SetTimeSpentHours(_currentHours);
}
}

很难准确地说出程序是如何响应的,因为我的 Activity 在附加调试器后变得很慢,但这似乎并没有起到作用,TextView 保持不变。

最佳答案

为此,您不需要使用 TimerTask。您可以使用以下之一:

  1. 您可以使用我为类似目的编写的此类 - CountUpTimer您必须定义 onTick() 以在每个“mCountUpInterval”时间间隔(在 CountUpInterval 类中定义)更新您的 TextView
  2. > Chronometer

关于java - 使用计时器计算秒数并更新 Activity 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55810978/

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