私はFootball Match Timerプロジェクトの真中にいます。基本的には、"START 1st half"
ボタンを押した後に開始するタイマーの実装を探していますが、一時停止よりも45分がカウントされ、もう一度起動することができます"START 2nd half"
(同じボタンになりますが、試合全体を通して変化した)。その後、45分から90分になります。一定時間実行するタイマーの作り方
私はHandler()
、Runnable()
とonClickListener()
を使ってこれを実現しようとしてきたが、それは私のために全く機能しません:(あなたは?私
Handler timerHandler = new Handler();
Runnable timerRunnable = new Runnable() {
@Override
public void run() {
showTimeRemaining();
timerHandler.postDelayed(this, 500);
}
};
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button b = (Button) v;
startButton(v);
if (b.getText().equals("Mecz trwa")) {
timerHandler.removeCallbacks(timerRunnable);
b.setEnabled(true);
} else {
startTime = System.currentTimeMillis();
timerHandler.postDelayed(timerRunnable, 0);
b.setText("Mecz trwa");
b.setEnabled(false);
}
}
});
public void showTimeRemaining() {
long millis = System.currentTimeMillis() - startTime;
int seconds = (int) (millis/1000);
int minutes = seconds/60;
seconds = seconds % 60;
timerTextView = (TextView) findViewById(R.id.time);
timerTextView.setText(String.format("%d:%02d", minutes, seconds));
}
「動作しない」とはどういう意味ですか? – Sweeper
showTimeRemainingメソッドの時間を更新するときにボタンオブジェクトを使用していないようです。また、loggerまたはsystem.out.Printステートメントを呼び出して、呼び出されているかどうかを確認します。この単純な計算を試してみてください。 intconds =(int)(ミリ秒/ 1000)%60; int minutes =(int)((ミリ秒/(1000 * 60))%60) – albeee