我正在尝试设置计时器。计时器正在工作,但只计数秒......分钟仍为00。
Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {
@Override
public void run() {
long millis = ((System.currentTimeMillis() + resumeTime) - startTime);
int hours = (int) ((millis / (1000*60*60)) % 24);
int seconds = (int) ((millis / 1000) % 60);
int minutes = seconds / 60;
TextView timer = (TextView) findViewById(R.id.textView6);
timer.setText(String.format("%02d:%02d:%02d",hours, minutes, seconds));
timerHandler.postDelayed(this, 500);
}
};
答案 0 :(得分:1)
seconds
始终介于0到59之间,除以60
只表示它始终为0.您应该修改数学,以便根据hours
得到分钟,而不是{ {1}}。做数学取决于你:)
PS:我刚看到你的问题标题与你问题的第一句话相矛盾。 Yu意味着你的分钟总是00而不是秒,对吧?!
答案 1 :(得分:0)
由于WarrenFaith建议秒数始终在0到59之间,除以60只表示它始终为0。
所以要分钟,改变
int minutes = seconds / 60;
到
int minutes = (int) (millis / (1000 * 60));