chronometer计时器代码
时间: 2023-07-09 07:23:55 浏览: 169
好的,以下是一个简单的chronometer计时器的代码示例:
XML布局文件:
```xml
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp" />
<Button
android:id="@+id/start_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start" />
<Button
android:id="@+id/stop_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop" />
```
Java代码:
```java
public class MainActivity extends AppCompatActivity {
Chronometer chronometer;
Button startButton, stopButton;
boolean isRunning = false;
long elapsedTime = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取布局中的控件
chronometer = findViewById(R.id.chronometer);
startButton = findViewById(R.id.start_button);
stopButton = findViewById(R.id.stop_button);
// 设置计时器的格式
chronometer.setFormat("Time: %s");
// 设置开始按钮的点击事件
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 如果计时器没有在运行中
if (!isRunning) {
// 如果已经有过计时,则先设置起始时间为上次的计时时间
if (elapsedTime != 0) {
chronometer.setBase(SystemClock.elapsedRealtime() - elapsedTime);
} else {
chronometer.setBase(SystemClock.elapsedRealtime());
}
chronometer.start(); // 开始计时
isRunning = true; // 更新状态
}
}
});
// 设置停止按钮的点击事件
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 如果计时器在运行中
if (isRunning) {
chronometer.stop(); // 停止计时
elapsedTime = SystemClock.elapsedRealtime() - chronometer.getBase(); // 记录已经过去的时间
isRunning = false; // 更新状态
}
}
});
}
}
```
这个示例中,我们使用了`Chronometer`控件来实现计时器的显示,而按钮则用来控制计时器的开始和停止。`isRunning`变量用来记录计时器是否在运行中,`elapsedTime`则用来记录已经过去的时间。在开始按钮的点击事件中,我们通过`SystemClock.elapsedRealtime()`方法来获取系统当前时间,然后设置为计时器的起始时间;在停止按钮的点击事件中,我们记录当前已经过去的时间,并更新`elapsedTime`变量的值。
阅读全文