【发布时间】:2012-08-08 18:18:46
【问题描述】:
我正在尝试在我的一个应用程序中使用秒表,并且我已经将它设置为在开始时开始计数秒并在停止时停止计数的位置。我的问题是它会在 60 秒后继续。例如,如果我等了两分钟,我会得到 120 秒。
所以我的问题是我怎样才能做到,一旦秒数达到 60,分钟数会增加 1 秒数会重新开始?
所以我会得到 2:00 而不是 :120。这是我的代码:
final int MSG_START_TIMER = 0;
final int MSG_STOP_TIMER = 1;
final int MSG_UPDATE_TIMER = 2;
Stopwatch timer = new Stopwatch();
final int REFRESH_RATE = 100;
Handler mHandler = new Handler()
{
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case MSG_START_TIMER:
timer.start();
mHandler.sendEmptyMessage(MSG_UPDATE_TIMER);
break;
case MSG_UPDATE_TIMER:
tvTextView.setText(":"+ timer.getElapsedTimeSecs());
mHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIMER,REFRESH_RATE);
break;
case MSG_STOP_TIMER:
mHandler.removeMessages(MSG_UPDATE_TIMER);
timer.stop();
tvTextView.setText("");
break;
default:
break;
}
}
};
还有:
public void start(View v) {
mHandler.sendEmptyMessage(MSG_START_TIMER);
}
public void stop(View v) {
mHandler.sendEmptyMessage(MSG_STOP_TIMER);
}
顺便说一句,我查看了this question,但他的问题在于 TimeSpan,如果我理解正确,这与秒表不同(如果我错了,请纠正我)。感谢您的时间和精力。
【问题讨论】:
-
你提到的那个问题是C#!
-
你为什么拒绝我的问题?只是想知道,这样我就可以改进未来的问题。
-
当然,您应该先检查一下,当您单击提出问题并输入标题时,标题下方有一个动态列表,其中提出了类似的问题。另外,你提到的东西完全不同。这是 SO 的一个问题,用户在发布之前实际上并没有先检查任何类似的听起来问题;最终结果是会出现很多潜在的重复,并让参与其中的人感到头疼,例如“我们是否应该通过标记为重复来删除问题”等并因此投票否决
-
感谢您的反馈,我在标题下方的动态列表中没有看到任何类似的问题,我在 Google 上也没有看到任何内容。您提供的问题还有一个不同的问题:他已经知道如何格式化 min 和 sec。这里只想从 00:00:00 而不是 0:0:0 开始。再次感谢您解释自己。