私は3つのタイマーを持っています。最初の1つは、準備が整ったタイマーのようなものなので、一度しか表示されません。Android forループが正しくカウントされない
2番目と3番目は、ユーザーが望む回数だけ表示したいです。タイマーを開始する前に、+ボタンまたは - ボタンを押して、TextViewの値を設定し、回数を選択する必要があります。
int counter = 0;
homeScreenPlus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dodajInterval();
homeScreenMinus.setEnabled(counter > 0);
}
});
homeScreenMinus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
oduzmiInterval();
homeScreenMinus.setEnabled(counter > 0);
}
});
}
private void oduzmiInterval() {
counter--;
brojIntervala.setText(Integer.toString(counter));
}
private void dodajInterval() {
counter++;
brojIntervala.setText(Integer.toString(counter));
}
そして、ここでは、タイマーのコードです::このコードで行うの
public void homeScreenStart(View view) {
linearniLayoutSetup.setVisibility(View.GONE);
CountDownTimer firstCountDown = new CountDownTimer(seekBarTimerDelay.getProgress() * 1000 + 100, 1000) {
@Override
public void onTick(long millisUntilFinished) {
updateTimer((int) millisUntilFinished/1000);
}
@Override
public void onFinish() {
textViewTimerVrijeme.setText("00:00");
countDownTimerTrci();
karticaTimera.setBackgroundColor(getResources().getColor(R.color.kartica_trci));
textViewTimerTrciHodajBlaBla.setText(getResources().getString(R.string.timer_trci));
}
}.start();
}
public void countDownTimerTrci() {
for (int i = 0; i < counter; i++) {
toolbar.setBackgroundColor(getResources().getColor(R.color.kartica_trci));
CountDownTimer secondCountDown = new CountDownTimer(seekBarIntervaliVisokogIntenziteta.getProgress() * 1000 + 100, 1000) {
@Override
public void onTick(long millisUntilFinished) {
updateTimer((int) millisUntilFinished/1000);
}
@Override
public void onFinish() {
textViewTimerVrijeme.setText("00:00");
karticaTimera.setBackgroundColor(getResources().getColor(R.color.kartica_hodaj));
imageViewTimerSlika.setImageResource(R.drawable.ic_timer_niski_intenzitet);
textViewTimerTrciHodajBlaBla.setText(getResources().getString(R.string.timer_hodaj));
toolbar.setBackgroundColor(getResources().getColor(R.color.kartica_hodaj));
CountDownTimer thirdCountDown = new CountDownTimer(seekBarIntervaliNiskogIntenziteta.getProgress() * 1000 + 100, 1000) {
@Override
public void onTick(long millisUntilFinished) {
updateTimer((int) millisUntilFinished/1000);
}
@Override
public void onFinish() {
textViewTimerVrijeme.setText("00:00");
countDownTimerTrci();
}
}.start();
}
}.start();
}
}
あなたが見ることができるように、それはボタンが押されたときに呼び出されるメソッドだと私は「ワン最初のタイマーは一度しか表示されないので、私はそれをfoorループに含めませんでした。
最初のタイマーは1回だけ表示され、それは機能しますが、他の2つのタイマーはアプリを終了するまで繰り返されます。
問題がどこにあるか教えていただけますか?
)あなたのcountDownTimerTrci方法は、鉱山で
ます。public void countDownTimerTrciを(置き換え、これを試してみてください。 – Nfear