次のレベルごとに時間が異なるため、カウントダウン タイマーには定数値を使用しません。したがって、最初のレベルでは timeCount 変数を 150000 に設定して使用します。
long timeCount = 150000;
public String formatTime(long millis) {
String output = "00:00";
long seconds = millis / 1000;
long minutes = seconds / 60;
seconds = seconds % 60;
minutes = minutes % 60;
String sec = String.valueOf(seconds);
String min = String.valueOf(minutes);
if (seconds < 10)
sec = "0" + seconds;
if (minutes < 10)
min= "0" + minutes;
output = min + " : " + sec;
return output;
}
そして私のタイマー:
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
public void onFinish() {
}
public void onTick(long millisUntilFinished) {
vreme.setText("" + millisUntilFinished / 1000);
}
}
// New timer for 40 minutes, starts after initialization
MyCount brojacVremena = new MyCount(timeCount, 1000)
{
// Updates the text on your "scoreboard" every second
public void onTick(long millisUntilFinished)
{
vreme.setText("" + formatTime(millisUntilFinished));
}
public void onFinish()
{
finish();
}
};
そのため、ゲームが終了するとポップアップ ウィンドウが表示され、[OK] を押すと次のレベルが表示されます。ポップアップを呼び出して、時間などの新しい値を設定します。
Intent i = new Intent(Kviz.this, Popup_nivoi.class);
if(level==2){
numberOfQuestions = 13;
timeCount = 160000;
greska = 7;
level++;
}
brojacVremena.cancel();
startActivityForResult(i, MY_REQUEST2);
しかし、私のカウントダウンタイマーは常に古い時間の 150000ms から始まります。それをリセットする方法は、timeCount の値を変更してもうまくいかないからです。どうしてか分かりません。その変数が変更されていることは確かですが、カウントダウンタイマーはそれを使用しません。