我目前正在尝试创建一个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 类中的另一个方法吗?
最佳答案
显然没有方法返回值( 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;
}
关于java - 如何解析来自计时器(android)的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831720/