1. 在布局文件 (main.xml) 中,增加界面元素声明如下:
<? xml version = "1.0" encoding = "utf-8" ?>
< LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "vertical"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
>
< Chronometer
android:id = "@+id/chronometer"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:format = "Timer: %s"
/>
< Button
android:id = "@+id/btn_start"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:text = " 开始计时 "
/>
< Button
android:id = "@+id/btn_stop"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:text = " 终止计时 "
/>
< Button
android:id = "@+id/btn_reset"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:text = " 清零 "
/>
</ LinearLayout >
2. Activity 所对应的代码:
public class ControlChronometer extends Activity
implements
OnClickListener,
OnChronometerTickListener
{
private Chronometer chronometer ;
private Button btn_start ;
private Button btn_stop ;
private Button btn_reset ;
@Override
public void onCreate(Bundle savedInstanceState)
{
super .onCreate(savedInstanceState);
setContentView(R.layout. main );
chronometer = (Chronometer)findViewById(R.id. chronometer );
chronometer .setOnChronometerTickListener( this );
btn_start = (Button)findViewById(R.id. btn_start );
btn_stop = (Button)findViewById(R.id. btn_stop );
btn_reset = (Button)findViewById(R.id. btn_reset );
btn_start .setOnClickListener( this );
btn_stop .setOnClickListener( this );
btn_reset .setOnClickListener( this );
}
public void onChronometerTick(Chronometer chronometer) // 1 秒钟触发一次
{
Log.e ( "Debug" , "" + System.currentTimeMillis ());
}
public void onClick(View v)
{
switch (v.getId())
{
case R.id. btn_start :
chronometer .setBase(SystemClock.elapsedRealtime ()); // 会将 chronometer 的显示清零
chronometer .start();
break ;
case R.id. btn_stop :
chronometer .stop(); // 停止计时
break ;
case R.id. btn_reset :
chronometer .setBase(SystemClock.elapsedRealtime ()); // 会将 chronometer 的显示清零
break ;
}
}
}
运行结果 :
未点击任何按钮:
点击开始计时按钮 ( 时间会一直增加 ) :
点击终止计时按钮 ( 时间停止,不会继续增加 ) :
点击清零按钮: