Как обновить время в таймере

Я хочу сделать таймер обратного отсчета, и я хочу обновлять время каждую секунду. Я создал таймер обновления, но он все еще не работает.

Может ли кто-нибудь сказать мне, что я не так?

Это мой код:

public void updateTimer(int secondsLeft) {

    int minutes = secondsLeft / 60;
    int seconds = secondsLeft * 60;

    String secondString = Integer.toString(seconds);

    if (seconds <= 9) {
        secondString = "0" + secondString;
    }

    time.setText(Integer.toString(minutes) + ":" + secondString);
}

Что вы имеете в виду под не работать? Он падает? (тогда какую ошибку/исключение вы получаете?) Он не делает то, что вы хотите? (Потом опишите, что произошло, чего вы ожидали).

vincrichaud 10.04.2019 17:21

Почему вы умножаете количество секунд на 60?

vincrichaud 10.04.2019 17:22

Пожалуйста, предоставьте сообщение об ошибке из logcat

Haroun Hajem 10.04.2019 17:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
405
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно использовать оператор по модулю%, чтобы правильно рассчитать количество секунд. Вот ваша функция исправлена:

public void updateTimer(int secondsLeft) {

        int minutes = secondsLeft / 60;
        int seconds = secondsLeft % 60;

        String secondString = Integer.toString(seconds);

        if (seconds <= 9) {
            secondString = "0" + secondString;
        }

        time.setText(Integer.toString(minutes) + ":" + secondString);
}

Спасибо за ответ сейчас попробую

Christian Mastracco 10.04.2019 17:29

Другие вопросы по теме