Как установить время запуска хронометра

У меня есть приложение, которое имеет хронометр, мне нужно установить время начала разницы между датами

Как я могу это сделать?

1 ответ

Решение

Один из способов сделать это - расширить класс Chronometer... примерно так:

public class MyChronometer extends Chronometer {

    public int msElapsed;
    public boolean isRunning = false;

    public MyChronometer(Context context) {
        super(context);
    }

    public int getMsElapsed() {
        return msElapsed;
    }

    public void setMsElapsed(int ms) {
        setBase(getBase() - ms);
        msElapsed  = ms;
    }

    @Override
    public void start() {
        super.start();
        setBase(SystemClock.elapsedRealtime() - msElapsed);
        isRunning = true;
    }

    @Override
    public void stop() {
        super.stop();
        if(isRunning) {
            msElapsed = (int)(SystemClock.elapsedRealtime() - this.getBase());
        }
        isRunning = false;
    }
}

Ты можешь использовать setMsElapsed(int ms) указать ваше смещение. Вам, вероятно, придется конвертировать ваши Даты в Long и делать оттуда математику. Класс можно использовать в макете XML, если указать весь пакет, в котором находится класс.

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