如何从计时器(android)解析值?
How to parse values from chronometer (android)?
我目前正在尝试创建一个 android 应用程序,我需要从单击开始按钮到单击停止按钮经过的时间(以秒为单位)。目前我有一个计时器,它在 java class:
中使用以下代码
//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 文件中相同 class 的以下代码:
<Chronometer
[...]
android:id="@+id/chronometer" />
<Button
android:text="Stop"
[...]
android:onClick="stopTimer"/>
<Button
android:text="Start"
[...]
android:onClick="startTimer" />
有什么方法可以将使用计时器的时间(以秒为单位)传递给相同的另一个方法 java class?
显然没有 returns 值 (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;
}
我目前正在尝试创建一个 android 应用程序,我需要从单击开始按钮到单击停止按钮经过的时间(以秒为单位)。目前我有一个计时器,它在 java class:
中使用以下代码//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 文件中相同 class 的以下代码:
<Chronometer
[...]
android:id="@+id/chronometer" />
<Button
android:text="Stop"
[...]
android:onClick="stopTimer"/>
<Button
android:text="Start"
[...]
android:onClick="startTimer" />
有什么方法可以将使用计时器的时间(以秒为单位)传递给相同的另一个方法 java class?
显然没有 returns 值 (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;
}