如何设置计时器的开始时间

时间:2012-01-17 14:40:11

标签: android chronometer

我有一个有计时器的应用程序,我需要将开始时间设置为日期之间的差异

我该怎么做?

1 个答案:

答案 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布局中使用该类。