AnalogClock和DigitalClock

  本篇主要介绍一下AnalogClock和DigitalClock控件。
package com.kevin.clock;

import java.util.Calendar;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.AnalogClock;
import android.widget.DigitalClock;
import android.widget.TextView;

public class Main extends Activity {
	private static final int MSGTYPE = 1;
	private AnalogClock analogClock;
	private TextView tv_title;
	private DigitalClock digitalClock;
	private Calendar calendar;
	private int hour;
	private int minute;
	private int second;
	private Handler handler;
	private Thread thread;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tv_title = (TextView) findViewById(R.id.tv_title);
		analogClock = (AnalogClock) findViewById(R.id.analogClock1);
		digitalClock = (DigitalClock) findViewById(R.id.digitalClock1);
		// 通过Handler来接受线程锁传递的信息并更新TextView
		handler = new Handler() {
			@Override
			public void handleMessage(Message msg) {
				switch (msg.what) {
				case MSGTYPE:
					tv_title.setText(hour + ":" + minute + ":" + second);
					break;
				default:
					break;
				}
				super.handleMessage(msg);
			}
		};
		// 每隔一秒取得系统时间
		thread = new LooperThread();
		thread.start();
	}

	class LooperThread extends Thread {
		@Override
		public void run() {
			try {
				while (true) {
					// 取得系统时间
					long time = System.currentTimeMillis();
					calendar = Calendar.getInstance();
					calendar.setTimeInMillis(time);
					second = calendar.get(Calendar.SECOND);
					minute = calendar.get(Calendar.MINUTE);
					hour = calendar.get(Calendar.HOUR_OF_DAY);
					Thread.sleep(1000);
					Message msg = new Message();
					msg.what = MSGTYPE;
					handler.sendMessage(msg);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

	}
}

你可能感兴趣的:(android)