001 |
package com.Second_Test; |
003 |
import java.util.Calendar; |
004 |
import java.util.Date; |
005 |
import java.util.Timer; |
006 |
import java.util.TimerTask; |
007 |
import android.app.Activity; |
008 |
import android.os.Bundle; |
009 |
import android.os.Handler; |
010 |
import android.util.Log; |
011 |
import android.view.View; |
012 |
import android.widget.Button; |
013 |
import android.widget.TextView; |
015 |
public class Second_Test extends Activity |
017 |
int curYear, curMonth, curDay, curHour, curMinute, curNoon, curSecond; |
031 |
private final Handler handler = new Handler(); |
034 |
public void onCreate(Bundle savedInstanceState) |
036 |
super .onCreate(savedInstanceState); |
037 |
setContentView(R.layout.main); |
039 |
Button bt1 = (Button)findViewById(R.id.Button01); |
040 |
bt1.setText( "현재 날짜와 시간 구하기" ); |
041 |
bt1.setOnClickListener( new View.OnClickListener() |
043 |
public void onClick(View v) |
056 |
getData = (TextView)findViewById(R.id.TextView01); |
058 |
second = new TimerTask() |
065 |
Log.d(tag, curYear+ "." +curMonth+ "." +curDay+ "." +curHour+ ":" +curMinute+ "." +curSecond); |
069 |
Timer timer = new Timer(); |
070 |
timer.schedule(second, 0 , 1000 ); |
075 |
protected void Update() |
077 |
c = Calendar.getInstance(); |
078 |
curMillis = c.getTime(); |
079 |
curYear = c.get(Calendar.YEAR); |
080 |
curMonth = c.get(Calendar.MONTH)+ 1 ; |
081 |
curDay = c.get(Calendar.DAY_OF_MONTH); |
082 |
curHour = c.get(Calendar.HOUR_OF_DAY); |
083 |
curNoon = c.get(Calendar.AM_PM); |
093 |
curMinute = c.get(Calendar.MINUTE); |
094 |
curSecond = c.get(Calendar.SECOND); |
097 |
Runnable updater = new Runnable() |
101 |
getData.setText( "현재 날짜와 시간은 " +curYear+ "년 " +curMonth+ "월 " +curDay+ "일 " + |
102 |
noon+curHour+ "시 " +curMinute+ "분 " +curSecond+ "초 입니다. " ); |
106 |
handler.post(updater); |
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="@string/hello" />
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get Time">
</Button>
<TextView
android:text="@+id/TextView01"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
레이아웃의 구성은 간략하다.
버튼하나, 텍스트뷰 끗. -_-;
본문 소스 중간에 보면... 로그캣을 남겨두었기 때문에 디버깅 모드로 DDMS를 관찰해보면 실제 시간을 볼 수 있다.
( ↑↑↑ 이곳의 시간은 실제 시간 ↑↑↑↑ 이곳의 시간이 log.d로 남긴 시간.)
1초의 오차가 있다. -_ㅜ;
실제 갤럭시S에서 어플을 구동해보았다.
버튼을 누르면 현재 날짜와 시간이 1초 간격으로 refresh 되면서 출력된다.
1초마다 쓰레드를 동작시키는 TimerTask 및 Timer 스케쥴러 메서드와.
이를 업데이트 시켜주는 handler의 기능이 어우러진 합작품이었다. ㅎ
근데 오늘 날씨 완전 덥네 ㅜ윽.