package com.example.admin.activity_stop_watch; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { TextView myOutput; TextView myRec; Button myBtnStart; Button myBtnRec; final static int Init =0; final static int Run =1; final static int Pause =2; int cur_Status = Init; //ÇöÀçÀÇ »óŸ¦ ÀúÀåÇÒº¯¼ö¸¦ ÃʱâÈ­ÇÔ. int myCount=1; long myBaseTime; long myPauseTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myOutput = (TextView) findViewById(R.id.time_out); myRec = (TextView) findViewById(R.id.record); myBtnStart = (Button) findViewById(R.id.btn_start); myBtnRec = (Button) findViewById(R.id.btn_rec); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } public void myOnClick(View v){ switch(v.getId()){ case R.id.btn_start: //½ÃÀÛ¹öưÀ» Ŭ¸¯ÇßÀ»¶§ ÇöÀç »óŰª¿¡ µû¶ó ´Ù¸¥ µ¿ÀÛÀ» ÇÒ¼öÀÖ°Ô²û ±¸Çö. switch(cur_Status){ case Init: myBaseTime = SystemClock.elapsedRealtime(); System.out.println(myBaseTime); //myTimerÀ̶ó´Â Çڵ鷯¸¦ ºó ¸Þ¼¼Áö¸¦ º¸³»¼­ È£Ãâ myTimer.sendEmptyMessage(0); myBtnStart.setText("¸ØÃã"); //¹öưÀÇ ¹®ÀÚ"½ÃÀÛ"À» "¸ØÃã"À¸·Î º¯°æ myBtnRec.setEnabled(true); //±â·Ï¹öư Ȱ¼º cur_Status = Run; //ÇöÀç»óŸ¦ ·±»óÅ·Πº¯°æ break; case Run: myTimer.removeMessages(0); //Çڵ鷯 ¸Þ¼¼Áö Á¦°Å myPauseTime = SystemClock.elapsedRealtime(); myBtnStart.setText("½ÃÀÛ"); myBtnRec.setText("¸®¼Â"); cur_Status = Pause; break; case Pause: long now = SystemClock.elapsedRealtime(); myTimer.sendEmptyMessage(0); myBaseTime += (now- myPauseTime); myBtnStart.setText("¸ØÃã"); myBtnRec.setText("±â·Ï"); cur_Status = Run; package com.example.admin.activity_stop_watch; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { TextView myOutput; TextView myRec; Button myBtnStart; Button myBtnRec; final static int Init =0; final static int Run =1; final static int Pause =2; int cur_Status = Init; int myCount=1; long myBaseTime; long myPauseTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myOutput = (TextView) findViewById(R.id.time_out); myRec = (TextView) findViewById(R.id.record); myBtnStart = (Button) findViewById(R.id.btn_start); myBtnRec = (Button) findViewById(R.id.btn_rec); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } public void myOnClick(View v){ switch(v.getId()){ case R.id.btn_start: switch(cur_Status){ case Init: myBaseTime = SystemClock.elapsedRealtime(); System.out.println(myBaseTime); myTimer.sendEmptyMessage(0); myBtnStart.setText("¸ØÃã"); myBtnRec.setEnabled(true); cur_Status = Run; break; case Run: myTimer.removeMessages(0); myPauseTime = SystemClock.elapsedRealtime(); myBtnStart.setText("½ÃÀÛ"); myBtnRec.setText("¸®¼Â"); cur_Status = Pause; break; case Pause: long now = SystemClock.elapsedRealtime(); myTimer.sendEmptyMessage(0); myBaseTime += (now- myPauseTime); myBtnStart.setText("¸ØÃã"); myBtnRec.setText("±â·Ï"); cur_Status = Run; break; } break; case R.id.btn_rec: switch(cur_Status){ case Run: String str = myRec.getText().toString(); str += String.format("%d. %s\n",myCount,getTimeOut()); myRec.setText(str); myCount++; break; case Pause: myTimer.removeMessages(0); myBtnStart.setText("½ÃÀÛ"); myBtnRec.setText("±â·Ï"); myOutput.setText("00:00:00"); cur_Status = Init; myCount = 1; myRec.setText(""); myBtnRec.setEnabled(false); break; } break; } } Handler myTimer = new Handler(){ public void handleMessage(Message msg){ myOutput.setText(getTimeOut()); myTimer.sendEmptyMessage(0); } }; String getTimeOut(){ long now = SystemClock.elapsedRealtime(); long outTime = now - myBaseTime; String easy_outTime = String.format("%02d:%02d:%02d", outTime/1000 / 60, (outTime/1000)%60,(outTime%1000)/10); return easy_outTime; } }