时钟UI组件是两个非常简单的组件,分为Digitalclock 和Analogclock,
main.xml文件,书中程序有问题,加了两个组件,一个Button和一个<Chronometer
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
>
<!-- 定义模拟时钟 -->
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<!-- 定义数字时钟 -->
<DigitalClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14pt"
/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
android:text="单击我" />
<Chronometer
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
mainactivity中
package com.example.clock;
import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取计时器组件
final Chronometer ch = (Chronometer)findViewById(R.id.test);
//获取开始按钮
Button start =(Button)findViewById(R.id.ok);
start.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View source)
{
//设置开始时间
ch.setBase(SystemClock.elapsedRealtime());
//启动计时器
ch.start();
}
});
ch.setOnChronometerTickListener(new OnChronometerTickListener()
{
public void OnChronometerTick(Chronometer ch)
{
if(SystemClock.elapsedRealtime() - ch.getBase() > 20*1000)
{
ch.stop();
}
}
@Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
}
});
}
}
所以Button和Chronometer均需要在main.xml中添加。