アプリの1つでストップウォッチを使用して実験していますが、開始時に秒数のカウントを開始し、停止時にカウントを停止するところまで到達しました。私の問題は、それが 60 秒後も続くことです。たとえば、2 分間待った場合、120 秒になります。
だから私の質問は、秒が60に達すると、分が1つ増えて秒が最初からやり直すようにするにはどうすればよいですか?
したがって、:120 の代わりに 2:00 になります。ここに私が持っているコードがあります:
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);
}
ちなみに、私はこの質問を見ましたが、彼の問題はTimeSpanにあり、ストップウォッチとは異なることを正しく理解している場合(間違っている場合は修正してください)。お時間とご尽力いただきありがとうございます。