Diskuze: Jednoduchý 3 2 1 countdown - problém (v Android Studiu)

Java Java Jednoduchý 3 2 1 countdown - problém (v Android Studiu)

Avatar
Vojtěch Bešťák:

Zdravím vytvářím jednoduchý 3 2 1 countdown na telefonu. Používám pro něj tento kód:

new CountDownTimer(4000, 1000) {

            public void onFinish() {
                countdownTextView.setVisibility(View.INVISIBLE);
                countdownTextView.setText("KONEC");
            }

            public void onTick(long millisUntilFinished) {
                countdownTextView.setText(String.valueOf(millisUntilFinished / 1000));
            }

        }.start();

Problém je takový:
Vše probíhá v pořádku, ovšem když se odpočet dostane na jedničku, tak místo toho, aby pokračoval a napsal "KONEC", tak se tam zastaví o sekundu déle a až po tom se napíše "KONEC". Takže celkový countdown netrvá 3 sekundy, ale 4, protože přechod z 1 na 0 trvá 2 sekundy, zatímco přechod z 3 na 2 a 2 na 1 trvá jednu sekundu...

Neví prosím někdo co s tím?

 
Odpovědět 3. června 18:45
Avatar
polemes
Redaktor
Avatar
polemes:

Moje řešení pomocí Thread (přišlo mi to jednoduší) :

TextView textView = (TextView)findViewById(R.id.textView);
int chybi;

new Thread(new Runnable() {
    @Override
    public void run() {

        chybi = 3;

        while(chybi!=0){

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    textView.setText(""+chybi);
                }
            });

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            chybi--;

        }

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                textView.setText("KONEC!");
            }
        });

    }
}).start();
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 6. června 19:08
5 + 5 = 1010
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.