0
私はアンドロイド用のストップウォッチアプリケーションを作っています。私は開始と停止のための1つのボタンを持っています。私の問題は、時間が非常に速くなっていることです。どこが間違っているの?ベローはコードです:DOCとしてAndroid StopWatch - 時間が非常に高速になっています
final Runnable updater = new Runnable() {
public void run() {
if (startIsPressed) {
time = SystemClock.elapsedRealtime() - initStart + startPointTime;
startPointTime = time;
} else {
time = startPointTime;
}
hh = time/3600000;
hours.setText("" + formatter.format(hh));
time = time - hh * 3600000;
mm = time/60000;
minutes.setText("" + formatter.format(mm));
time = time - mm * 60000;
ss = time/1000;
seconds.setText("" + formatter.format(ss));
time = time - ss * 1000;
millis.setText("" + formatter.format(time/10));
handler.postDelayed(this, 30);
}
};
startBtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (!startIsPressed) {
startIsPressed = true;
startBtn.setText(R.string.stop);
initStart = SystemClock.elapsedRealtime();
handler.post(updater);
} else {
startIsPressed = false;
startBtn.setText(R.string.start);
handler.post(updater);
}
}
});
}
このポストを参照してください。多分役に立つかもしれませんhttp://stackoverflow.com/questions/3733867/stop-watch-logic –
再生のおかげで、でも私の問題はどこで停止したのかを数える方法です。リンクに表示されている例では、タイマーが停止し、最初からやり直します。 – dgjorg