IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Aktivity
Avatar
Vojtěch Bešťák:3.6.2016 18:45

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.6.2016 18:45
Avatar
Martin Skalík
Tvůrce
Avatar
Martin Skalík:6.6.2016 19:08

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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
6.6.2016 19:08
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.