如何从计时器(android)解析值?

时间:2017-03-16 10:41:12

标签: java android time chronometer elapsedtime

我正在尝试创建一个Android应用程序,我需要从单击开始按钮直到单击停止按钮所经过的时间(以秒为单位)。目前我有一个计时器,它在java类中使用以下代码:

//on start timer
public void startTimer(View view){
    myChronometer.setBase(SystemClock.elapsedRealtime());
    myChronometer.start();
}

//on stop timmer
public void stopTimer(View view){
    myChronometer.stop();
}

后面是同一类的xml文件中的以下代码:

    <Chronometer
    [...]
    android:id="@+id/chronometer" />

<Button
    android:text="Stop"
    [...]
    android:onClick="stopTimer"/>

<Button
    android:text="Start"
    [...]
    android:onClick="startTimer" />

有没有什么方法可以将使用计时器的时间(以秒为单位)传递给同一个java类中的另一个方法?

1 个答案:

答案 0 :(得分:0)

显然没有返回值(check here)的方法,但您可以轻松自己计算:

SystemClock.elapsedRealtime() - myChronometer.getBase()

如果你需要在停止计时器之后访问时间,你可以做这样的事情

private long timerTime = Long.MIN_VALUE;

//on start timer
public void startTimer(View view){
    myChronometer.setBase(SystemClock.elapsedRealtime());
    myChronometer.start();
    timerTime = Long.MIN_VALUE;
}       

//on stop timmer
public void stopTimer(View view){
    myChronometer.stop();
    timerTime = SystemClock.elapsedRealtime() - myChronometer.getBase();
}

private long getTimerTime(){
    if(timerTime == Long.MIN_VALUE){
        return SystemClock.elapsedRealtime() - myChronometer.getBase();
    }

    return timerTime;
}