我有一个有计时器的应用程序,我需要将开始时间设置为日期之间的差异
我该怎么做?
答案 0 :(得分:8)
这样做的一种方法是扩展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布局中使用该类。