Таймер обратного отсчета Android отображает миллисекунды?

Я хочу, чтобы таймер появлялся, когда я нажимаю кнопку, которая будет отсчитывать от 3 секунд. И это нормально, но я хочу, чтобы он также показывал миллисекунды, поэтому, когда я нажимаю кнопку, текст меняется с 3,0 на 0,1. Как добавить миллисекунды в текстовое представление?

new CountDownTimer(1000, 3000) {

                public void onTick(long millisUntilFinished) {
                    textViewTimer.setText("" + millisUntilFinished / 1000);
                }

                public void onFinish() {
                    textViewTimer.setVisibility(View.INVISIBLE);
                    textViewLevelGained.setVisibility(View.INVISIBLE);

                }
            }.start();

Это то, что у меня есть


person Adariel Lzinski    schedule 03.02.2013    source источник
comment
но вы уже добавили millisUntilFinished в textViewTimer в onTick. у вас есть какие-либо проблемы с этим?   -  person ρяσѕρєя K    schedule 03.02.2013
comment
он просто ведет обратный отсчет от 3...2....1... и не отображает миллисекунды. Я хочу, чтобы он считался с 3,0, 2,9, 2,8 и т. д.   -  person Adariel Lzinski    schedule 03.02.2013


Ответы (1)


Другие вопросы SO предполагают, что CountDownTimer плохо справляется с гранулярностью менее 1 секунды. Посмотрите на другой класс, например TimerTask.

В противном случае будет работать следующее.

new CountDownTimer(3000, 1) {
    public void onTick(long millisUntilFinished) {
        textViewTimer.setText("" + millisUntilFinished / 1000
          + "." + millisUntilFinished % 1000);
    }

    public void onFinish() {
        textViewTimer.setVisibility(View.INVISIBLE);
        textViewLevelGained.setVisibility(View.INVISIBLE);
    }
}.start();
person Brian Attwell    schedule 03.02.2013
comment
Это не работает. Он просто отображает 2,189, 1,189, затем останавливается - person Adariel Lzinski; 03.02.2013
comment
Извините, забыл изменить величину приращения. - person Brian Attwell; 03.02.2013
comment
первое значение CountDownTimer должно быть 3000, но оно все еще просто показывает 2.2, 1.1, а затем останавливается. нет 2,9, 2,8, 2,7, понимаете, что я говорю? - person Adariel Lzinski; 03.02.2013
comment
Даже с CountDownTimer(3000, 1)? - person Brian Attwell; 03.02.2013
comment
Другие вопросы SO предполагают, что CountDownTimer плохо справляется с гранулярностью менее 1 секунды. Посмотрите на другой класс, например TimerTask. - person Brian Attwell; 03.02.2013