1. 程式人生 > >Android基礎控制元件Chronometer計時器控制元件

Android基礎控制元件Chronometer計時器控制元件

Chronometer→計時器控制元件


java.lang.Object
  android.view.View
    android.widget.TextView
      android.widget.Chronometer

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"
        >
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="秒錶應用"
            />
    <Chronometer
            android:id="@+id/chronometer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    <Button
            android:id="@+id/btnStart"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="開始計時"
            />
    <Button
            android:id="@+id/btnStop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="停止計時"
            />
    <Button
            android:id="@+id/btnReset"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="重置計時器"
            />
</LinearLayout>

Java程式碼:

package com.ncsyeyy.YeyyChronometer;


import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;


public class MyActivity extends Activity {


    private Button btnStart;
    private Button btnStop;
    private Button btnReset;
    private Chronometer chronometer;


    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        findView();
        setListener();
    }
    private void setListener(){
        btnStart.setOnClickListener(myListener);
        btnStop.setOnClickListener(myListener);
        btnReset.setOnClickListener(myListener);
    }
    View.OnClickListener myListener=new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btnStart:
                    chronometer.start();
                    break;
                case R.id.btnStop:
                    chronometer.stop();
                    break;
                case R.id.btnReset:
                    chronometer.setBase(SystemClock.elapsedRealtime());
                    break;
                default:
                    break;
            }
        }
    };
    private void findView(){
        chronometer = (Chronometer) findViewById(R.id.chronometer);
        btnStart = (Button) findViewById(R.id.btnStart);
        btnStop = (Button) findViewById(R.id.btnStop);
        btnReset = (Button) findViewById(R.id.btnReset);
    }
// 注意:
// setBase方法設定計時器的及時開始基準點,設定為SystemClock.elapsedRealtime(),也就是從當前系統
//    時間開始計時,也就相當於清零了計時器
//    Chronometer控制元件是TextView控制元件的一個子類,原理是每隔一秒鐘呼叫異常更新內容的方法類更新Chronometer控制元件的顯示內容
//當前定義的秒錶。如何定義毫秒呢?
}

原始碼地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9105489