Android Chronometer計時器

}Chronometer是一個簡單的計時器,你能夠給它一個開始時間,並以計時,或者若是你不給它一個開始時間,它將會使用你的時間通話開始。在默認狀況下,Chronometer組件只輸出MM:SS或H:MM:SS的時間格式。例如,當計時到1分20秒時,Chronometer組件會顯示01:20。若是想改變顯示的信息內容,能夠使用Chronometer類的setFormat方法。該方法須要一個String變量,並使用"%s"表示計時信息。例如,使用setFormat("計時信息:%s")設置顯示信息,Chronometer組件會顯示以下計時信息:java


       計時信息:10:20

android

android:format;//定義時間的格式如:hh:mm:ss
 setFormat("計時:%s");  //設置顯示格式
 setFormat(String format);//設置顯示時間的格式。 
start();//開始計時 
stop();//中止計時

setBase();//設置基地時間,通常都是SystemClock.elapsedRealtime()  
setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener);//當計時器改變時調用。


案例:app

1.定義佈局文件chronometer.xmlide

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
   <Chronometer 
        android:id="@+id/chronometer"
        android:layout_width="match_parent" 
	    android:layout_height="wrap_content"
	 />
   <Button 
        android:id="@+id/chronometer_start"
        android:layout_width="match_parent" 
	    android:layout_height="wrap_content"
	    android:text="開始計時"
	/>
   <Button 
        android:id="@+id/chronometer_end"
        android:layout_width="match_parent" 
	    android:layout_height="wrap_content"
	    android:text="中止計時"
	    
	/>
   <Button 
        android:id="@+id/chronometer_null"
        android:layout_width="match_parent" 
	    android:layout_height="wrap_content"
	    android:text="從新開始計時"
	    
	/>
</LinearLayout>

2.java代碼文件:ChronometerDemo.java佈局

package com.test;

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

public class ChronometerDemo extends Activity {
	
	private Chronometer  chronometer;
	
	private Button  button_start, button_end,button_bull;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.chronometer);
		
		chronometer =(Chronometer)findViewById(R.id.chronometer);
		button_start =(Button)findViewById(R.id.chronometer_start);
		button_end =(Button)findViewById(R.id.chronometer_end);
		button_bull =(Button)findViewById(R.id.chronometer_null);
		
		button_start.setOnClickListener(clickListener);
		button_end.setOnClickListener(clickListener);
		button_bull.setOnClickListener(clickListener);
	}

	private  OnClickListener  clickListener = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			
			switch (v.getId()) {
			case R.id.chronometer_start:
				//調用start()方法開始計時
				chronometer.start();
				button_start.setText("正在計時...");
				break;
			case R.id.chronometer_end:
				//調用stop()方法中止計時
				chronometer.stop();
				button_start.setText("繼續計時");
				break;
			case R.id.chronometer_null:
				//調用stop()方法中止計時
				chronometer.setBase(SystemClock.elapsedRealtime());
				chronometer.start();
				button_start.setText("正在計時...");
				break;

			default:
				break;
			}
		}
	};
}

3> 運行效果:spa




有一個問題就是,計時器開始計時後,一段時間以後,點擊中止計時,一段時間後,點擊繼續計時,可是這個時間的不是中止後的那個時間。說明中止以後,計時器還在後臺運行。 code

相關文章
相關標籤/搜索