4

クロノメーターを備えたアプリケーションがあり、開始時刻を日付の差に設定する必要があります

どうやってやるの?

4

1 に答える 1

8

これを行う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)してオフセットを指定できます。おそらく、Dates を Long に変換し、そこから計算を行う必要があります。クラスが存在するパッケージ全体を指定すると、クラスを XML レイアウトで使用できます。

于 2012-01-17T16:25:04.337 に答える