MainActivity.java
package com.example.exp5; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { private TextView mint; private TextView sec; private TextView msec; private Button start; private Button reset; private long timeusedinsec; private boolean isstop = false; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: // 添加更新ui的代码 if (!isstop) { updateView(); mHandler.sendEmptyMessageDelayed(1, 100); } break; case 0: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); } private void initViews() { mint = (TextView) findViewById(R.id.mint); sec = (TextView) findViewById(R.id.sec); msec = (TextView) findViewById(R.id.msec); reset = (Button) findViewById(R.id.reset); start = (Button) findViewById(R.id.start); reset.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { mint.setText("00"); sec.setText("00"); msec.setText("0"); start.setText("start"); timeusedinsec=0; isstop=true; } }); start.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { mHandler.removeMessages(1); String aaa=start.getText().toString(); if(aaa.equals("start")){ mHandler.sendEmptyMessage(1); isstop = false; start.setText("pause"); }else { mHandler.sendEmptyMessage(0); isstop = true; start.setText("start"); } } }); } private void updateView() { timeusedinsec += 1; int minute = (int) (timeusedinsec / 600)%60; int second = (int) (timeusedinsec / 10)%60; int millisecond = (int) (timeusedinsec % 10); if (minute < 10) mint.setText("0" + minute); else mint.setText("" + minute); if (second < 10) sec.setText("0" + second); else sec.setText("" + second); if (millisecond < 10) msec.setText("" + millisecond); } }
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:id="@+id/relativeLayout"> <LinearLayout android:id="@+id/top" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="秒表\n" android:textSize="30dp"/> </LinearLayout> <LinearLayout android:id="@+id/middle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/top" android:layout_centerHorizontal="true" android:orientation="horizontal" > <TextView android:id="@+id/mint" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="00" android:textSize="30dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=":" android:textSize="30dp" /> <TextView android:id="@+id/sec" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="00" android:textSize="30dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="." android:textSize="30dp" /> <TextView android:id="@+id/msec" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0" android:textSize="30dp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/middle" android:layout_centerHorizontal="true" android:orientation="horizontal" > <Button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="start" /> <Button android:id="@+id/reset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="reset" /> </LinearLayout> </RelativeLayout> </RelativeLayout>