日期时间类组件(计时器Chronometer)
- 计时器:用于计时的组件。显示一串文本,文本用于显示从某个时间段开始到现在一共过去了多长时间。
在activity_main.xml文件中,用Chronometer标签来定义计时器。
- 属性:
- android:layout_width和android:layout_height :设置为wrap_content,即包裹其自身内容。
- android:format :设置显示格式。
计时器默认的格式是以时分秒的格式(%s)显示时间。可以通过这个属性改:
- 常用方法:
- setBase() :设置计时器的起始时间。
- setFormat() :设置计时器的显示格式。
- start() :指定开始计时。
- stop() :指定结束计时。
- setOnChronometerTickListener() :为计时器绑定事件监听器,当计时器改变时触发该监听器。
示例:
设置一个计时器,当计时60秒时显示”60s已用完“:
先为计时器定义一个id:
再在java文件中进行如下操作:
package com.example.timepickerdemo2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.SystemClock;
import android.widget.Chronometer;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
//定义一个计时器
private Chronometer chronometer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取计时器
chronometer=findViewById(R.id.chronometer);
//设置计时器的起始时间为当前系统的时间
//通过SystemClock.elapsedRealtime()来获取当前系统的时间
chronometer.setBase(SystemClock.elapsedRealtime());
//设置计时器显示时间格式
chronometer.setFormat("%s");
//开始计时
chronometer.start();
//设置事件监听器
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
//判断计时器是否计时超过60秒
if(SystemClock.elapsedRealtime()-chronometer.getBase()>=60000){
//超过则停止计时,并显示60s已用完
chronometer.stop();
Toast.makeText(MainActivity.this,"60s已用完",Toast.LENGTH_LONG).show();
}
}
});
}
}
运行结果:
刚运行时从00:00开始计时:
计时到16秒:
计时到60秒,显示”60s已用完“: