countDownTimer Don't show 00:00

Viewed 55

I'm Making a countdown timer app but the problem when the countdown finish it doesn't show me 00:00 I'm using seek bar the set the timer when I use 100 in countDown interval it works but I want it to be 1000 in the interval and I'm following a tutorial I write the same code shown in the tutorial it works for him and not for me please help me guys

public void buttonClicked(View view)
    {
        CountDownTimer countDown = new CountDownTimer(timerSeek.getProgress() * 1000 + 100, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                timerUpdate((int) millisUntilFinished / 1000);
            }

            @Override
            public void onFinish() {
                Toast.makeText(MainActivity.this, "finish", Toast.LENGTH_SHORT).show();
            }
        }.start();
    }
    /* ========================================================= */


    /* ========================================================= */

public void timerUpdate(int secondsLeft)
    {
        int minutes = secondsLeft / 60;
        int seconds = secondsLeft - (minutes * 60);
            String secondsStr = Integer.toString(seconds);
            if (seconds <= 9)
                secondsStr = "0" + secondsStr;
        timerText.setText(Integer.toString(minutes) + " : " + secondsStr);
    }

    /* ============================================================ */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    timerSeek = (SeekBar) findViewById(R.id.timerSeek);
    timerText = (TextView) findViewById(R.id.timerText);

    timerSeek.setMax(600);
    timerSeek.setProgress(30);

        timerSeek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    timerUpdate(progress);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
}
1 Answers

This is because onTick() method is not called when the countdown is finished. Rather, onFinish() is called. An easy solution that appears to me is that you can explicitly show 00:00 inside onFinish(), since this method is called when the countdown is finished.

Related