Как установить время запуска хронометра
У меня есть приложение, которое имеет хронометр, мне нужно установить время начала разницы между датами
Как я могу это сделать?
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, если указать весь пакет, в котором находится класс.