Chronometer (计时器)是TextView 的子类,这个组件可以用1秒的时间间隔进行计时,并显示出计时结果
Chronometer 类有3个重要的方法: start、stop和setBase,其中 start 表示开始计时,stop 表示停止计时,setBase 表示重新计时,start() 和 stop() 没有参数,setBase()有一个参数,表示开始计时的基准时间, 如果要从当前时刻重新计时,可以将该参数值设为SystemClock.slapsedRealtime()。
示意图
主要代码如下
public class Main extends Activity implements OnClickListener,
OnChronometerTickListener {
private Chronometer chronometer;
private TextView tvTime;
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnStart: chronometer.start();
break;
case R.id.btnStop: chronometer.stop();
break;
case R.id.btnReset: chronometer.setBase(SystemClock.elapsedRealtime());
break;
}
}
@Override
public void onChronometerTick(Chronometer chronometer) {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
tvTime.setText("当前时间:" + sdf.format(new Date()));
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvTime = (TextView)findViewById(R.id.tvTime);
Button btnStart = (Button) findViewById(R.id.btnStart);
Button btnStop = (Button) findViewById(R.id.btnStop);
Button btnReset = (Button) findViewById(R.id.btnReset);
chronometer = (Chronometer) findViewById(R.id.chronometer);
btnStart.setOnClickListener(this);
btnStop.setOnClickListener(this);
btnReset.setOnClickListener(this);
chronometer.setOnChronometerTickListener(this);
// "%s" 表示计时信息
chronometer.setFormat("计时器:%s");
}
}
具体代码 请参见 ch08_chronometer
工程