このコードで 00:00 形式の時間カウントダウン タイマーを使用します。
int 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;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kviz);
brojacVremena.start();
}
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);
}
}
MyCount brojacVremena = new MyCount(timeCount, 1000)
{
public void onTick(long millisUntilFinished)
{
vreme.setText("" + formatTime(millisUntilFinished));
}
public void onFinish()
{
finish();
}
};
そして、それはうまくいきます。しかし、私のゲームが終了すると、startActivityForResult でポップアップを開始し、ユーザーが [OK] ボタンを押した後、次のレベルを開始し、時間を更新する必要があります。もう 150000ms ではありません。今は別のものです。私はこのようにします:
static final int MY_REQUEST2 = 1;
Intent i = new Intent(Kviz.this, Popup_nivoi.class);
numberOfQuestions = 13;
timeCount = 160000;
i.putExtra("time", 160);
startActivityForResult(i, MY_REQUEST2);
ここで、int 変数 timeCount を新しい値で更新しますが、タイマーが開始すると、再び 150 秒から進みます。私は何を間違っていますか?
このメソッドは、ポイント、エラー、残りの試行など、このクラスで使用する他のいくつかの変数で正常に機能します。時間変数のみが更新されません。