当我点击图像按钮(应启动计时器)时,计时器不会从00:00开始,而是从应用程序运行时开始。 例如,如果我打开应用程序并等待10秒,当我点击图像按钮时,计时器将从00:10开始。 每当我点击图像按钮时,我该怎样做才能从00:00开始计时器?
这是我的代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Chronometer;
import android.widget.ImageButton;
import android.os.SystemClock;
public class MainScreen extends Activity {
Chronometer focus;
ImageButton start;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_screen);
start=(ImageButton)findViewById(R.id.FingerStartImageBtn);
focus=(Chronometer)findViewById(R.id.timer);
focus.setBase(SystemClock.elapsedRealtime());
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
focus.start();
}
});
}
}
答案 0 :(得分:10)
在致电focus.setBase(SystemClock.elapsedRealtime())
之前致电focus.start();
应该这样做。从天文台的代码
public void setBase(long base) {
mBase = base;
dispatchChronometerTick();
updateText(SystemClock.elapsedRealtime());
}
private synchronized void updateText(long now) {
long seconds = now - mBase;
seconds /= 1000;
String text = DateUtils.formatElapsedTime(mRecycle, seconds);
你可以看到时间设置为0,
答案 1 :(得分:3)
你可以在elapsedRealtime()中给它一个开始时间。
我使用下面的代码工作正常我点击按钮它从00:00开始,你也可以使用
设置“H:MM:SS”之类的格式mChronometer.setBase(SystemClock.elapsedRealtime());
mChronometer.start();