Android使用Timer计时输出TextView格式时间
时间: 2024-05-11 21:17:10 浏览: 6
可以使用以下代码来实现:
首先,在你的布局文件中添加一个TextView组件,用于显示计时器的时间:
```xml
<TextView
android:id="@+id/timerTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="00:00:00" />
```
然后,在你的Activity或Fragment中,声明一个Timer对象和一个TimerTask对象,并在onCreate方法中初始化它们:
```java
private Timer timer;
private TimerTask timerTask;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timer = new Timer();
timerTask = new TimerTask() {
int seconds = 0;
int minutes = 0;
int hours = 0;
@Override
public void run() {
seconds++;
if (seconds == 60) {
seconds = 0;
minutes++;
}
if (minutes == 60) {
minutes = 0;
hours++;
}
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView timerTextView = findViewById(R.id.timerTextView);
timerTextView.setText(String.format("%02d:%02d:%02d", hours, minutes, seconds));
}
});
}
};
}
```
在上面的代码中,我们定义了一个计时器,每一秒钟更新一次TextView的文本内容。我们还使用runOnUiThread方法来确保更新UI的操作在UI线程上执行。
现在,我们需要在Activity或Fragment的生命周期方法中启动和停止计时器。在onResume方法中启动计时器,在onPause方法中停止计时器:
```java
@Override
protected void onResume() {
super.onResume();
timer.scheduleAtFixedRate(timerTask, 0, 1000);
}
@Override
protected void onPause() {
super.onPause();
timer.cancel();
}
```
在上面的代码中,我们使用scheduleAtFixedRate方法来启动计时器,并在onPause方法中取消计时器。
现在,你就可以在你的Android应用程序中使用Timer计时器来显示格式化的时间了!