Android 秒表


2012年10月28日,手機沒有秒表,自己想做一個秒表來給自己用,現在馬上做出一個實例來,這只是開始,以后做個界面漂亮的應用出來。廢話不說,先上圖:

            

 

源碼:

建立項目:Stopwatch

代碼清單:org/wwj/Stopwatch/Stopwatch.java

package org.wwj.Stopwatch;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Stopwatch extends Activity {
	
	private TextView minText;		//分
	private TextView secText;		//秒
	private Button start;			//開始按鈕
	private Button stop;			//停止按鈕
	private boolean isPaused = false;
	private String timeUsed;
	private int timeUsedInsec;
	
	private Handler uiHandle = new Handler(){
		public void handleMessage(android.os.Message msg) {
			switch(msg.what){
			case 1:
				if(!isPaused) {
					addTimeUsed();
					updateClockUI();
				}
				uiHandle.sendEmptyMessageDelayed(1, 1000);
				break;
			default: break;
			}
		}
	};
	
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stopwatch);
        
        //獲取界面的控件
        minText = (TextView) findViewById(R.id.min);
        secText = (TextView) findViewById(R.id.sec);
        start = (Button) findViewById(R.id.start);
        stop = (Button) findViewById(R.id.stop);
        
        
        //為按鈕Start注冊監聽器
        start.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				uiHandle.removeMessages(1);
				startTime();
				isPaused = false;
			}
		});
        
        //為按鈕stop注冊監聽器
        stop.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				isPaused = true;
				timeUsedInsec = 0;
			}
		});
    }   
    
    
    @Override
    protected void onPause() {
    	// TODO Auto-generated method stub
    	super.onPause();
    	isPaused = true;
    }
    
    
    @Override
    protected void onResume() {
    	// TODO Auto-generated method stub
    	super.onResume();
    	isPaused = false;
    }
    
    private void startTime(){
    	uiHandle.sendEmptyMessageDelayed(1, 1000);
    }
    
    /**
     * 更新時間的顯示
     */
    private void updateClockUI(){
    	minText.setText(getMin() + ":");
    	secText.setText(getSec());
    }
    
    public void addTimeUsed(){
    	timeUsedInsec = timeUsedInsec + 1;
    	timeUsed = this.getMin() + ":" + this.getSec();
    }
    
    public CharSequence getMin(){
    	return String.valueOf(timeUsedInsec / 60);
    }
    
    public CharSequence getSec(){
    	int sec = timeUsedInsec % 60;
    	return sec < 10? "0" + sec :String.valueOf(sec);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_stopwatch, menu);
        return true;
    }

    
}


 

界面布局:res/layout/layout_stopwatch.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
	<LinearLayout 
	    android:orientation="horizontal"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:layout_gravity="center_horizontal">
	    <TextView 
	        android:id="@+id/min"
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:textSize="40sp"/>
	    <TextView 
	        android:id="@+id/sec"
	        android:layout_width="wrap_content" 
	        android:layout_height="wrap_content"
	        android:textSize="40sp"
	        android:textColor="#ff0000"/>
	</LinearLayout>
	<LinearLayout 
	    android:orientation="horizontal"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:layout_gravity="center_horizontal"
	    >
	    <Button 
	        android:id="@+id/start"
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:text="@string/start"/>
	    <Button 
	        android:id="@+id/stop"
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:text="@string/stop"/>
	</LinearLayout>
</LinearLayout>


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM