リセットボタンを押したときにCountdownTimerを5秒間スキップしたいAndroidアプリケーションに取り組んでいます。たとえば、カウントダウンタイマーがt = 15になったときにリセットボタンが押された場合、タイマーは次の5秒をスキップし、タイマーはt = 10と表示されます。これは私が試したものですが、動作しませんでした。ボタンを押したときにカウントダウンタイマーを5秒間スキップする(Androidスタジオ)
ボタンのコード:
buttonReset = (Button) findViewById(R.id.ButtonReset);
buttonReset.setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
TextView output = (TextView) findViewById(R.id.Display);
r = 1;
output.setText("");
resetStatus = true;
}
}
);
編集:私はタイマーコードを更新しました。今、古いタイマーをキャンセルして新しいタイマーを開始します。私は今、リセットボタンを押すとタイマーが5秒後に表示がフリーズをスキップし、
public void start()
{
new CountDownTimer(59*1000, 1000)
{
TextView timer = (TextView) findViewById(R.id.Timer);
public void onTick(long millisUntilFinished)
{
int TimeSeconds = (int) millisUntilFinished/1000;
if (resetStatus)
{
cancel();
TimeSeconds = TimeSeconds - 5;
final int finalTimeSeconds = TimeSeconds;
new CountDownTimer(finalTimeSeconds*1000, 1000)
{
@Override
public void onTick(long millisUntilFinished) {
if (finalTimeSeconds >= 10)
{
//displays time
timer.setText("00:" + finalTimeSeconds);
}
else
{
//displays time
timer.setText("00:0" + finalTimeSeconds);
}
resetStatus = false;
}
@Override
public void onFinish() {
gameOverDialogue();
}
}.start();
}
else
{
if (TimeSeconds >= 10)
{
//displays time
timer.setText("00:" + TimeSeconds);
}
else
{
//displays time
timer.setText("00:0" + TimeSeconds);
}
}
}
public void onFinish()
{
gameOverDialogue();
}
}.start();
}
:
はタイマーコードをカウントダウン。しかし、タイマーは刻々と変化し続けて0に達しています.236カウントダウンタイマーでfinal
変数finalTimeSeconds
がTimeSeconds
の代わりに使用されるためだと思います。助言がありますか?あなたが唯一の変更あなたのコードでは、事前
私の質問でコードを変更しました。私は古いタイマーをキャンセルして今すぐ新しいタイマーを開始しますが、編集した質問の末尾に記載した別の問題が発生します –
更新されたコードでは、作成する2番目のCountDownTimerには最初のものと同じコードが含まれていません。 CountDownTimerの独自のサブクラスを作成し、必要に応じて新しいものを作成する方がよいでしょう。キャンセルの音はあなたのonclickで直接行われ、更新された時間で新しいものを開始します。あなたのブールresetStatusについては忘れてください。 – smora