计时器(Chronometer)组件可以显示从某个起始时间开始,一共过去了多长时间的文本。由于该组件继承TextView,所以它以文本的相形式显示内容。使用该组件也比较简单,通常只需要一下五
计时器(Chronometer)组件可以显示从某个起始时间开始,一共过去了多长时间的文本。由于该组件继承TextView,所以它以文本的相形式显示内容。使用该组件也比较简单,通常只需要一下五个方法: 1.setBase():用于设定计时器的起始时间 2.setFormat():用于设定显示时间的格式 3.start():用于指定计时开始 4.stop():用于指定计时结束 5.setOnChronometerTickListener():用于为计时器绑定事件监听器,当计时器改变时触发该监听器。
下面用一个具体示例说明计时器的应用:
效果:
实现方法:
res/layout/main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:background="#FFFFFF"> <TextView android:text="计时器" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Chronometer android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="chronometer"/> </LinearLayout>MainActivity:
package com.example.test;import android.app.Activity;import android.os.Bundle;import android.os.SystemClock;import android.widget.Chronometer;import android.widget.Chronometer.OnChronometerTickListener;import android.widget.CompoundButton.OnCheckedChangeListener;public class MainActivity extends Activity { private OnCheckedChangeListener checkBox_listener; private int year,month,day,hour,minute; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //获取计时器组件 final Chronometer ch=(Chronometer)findViewById(R.id.chronometer); //设置起始时间(elapsedRealtime是从开机到现在的毫秒数) ch.setBase(SystemClock.elapsedRealtime()); ch.setFormat("已用时间:%s");//设置时间显示格式 ch.start();//计时器启动 //添加监听器 ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { if(SystemClock.elapsedRealtime()-ch.getBase()>=10000){ ch.stop();//停止计时器 } } }); }}