我正在尝试创建一个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类中的另一个方法?
答案 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;
}