<?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" > <TextView android:id="@+id/dateAndTime" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/dateBtn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="날짜 선택" /> <Button android:id="@+id/timeBtn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="시간 선택" /> </LinearLayout>
package kr.android.chrono; //Chrono 시간,날짜 처리 import android.app.TimePickerDialog; import android.widget.TimePicker; import java.text.DateFormat; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; public class ChronoDemo extends Activity { DateFormat fmtDateAndTime = DateFormat.getDateTimeInstance(); TextView dateAndTimeLabel; Calendar dateAndTime = Calendar.getInstance(); //익명 내부 클래스 형태의 이벤트 처리(날짜 관련) DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() { //이벤트 핸들러 //DatePicker view : DatePicker 객체 //int year : 변경한 년도 전달 //int monthOfYear : 변경한 월 전달 //int dayOfMonth : 변경한 일 전달 public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { dateAndTime.set(Calendar.YEAR, year); dateAndTime.set(Calendar.MONTH, monthOfYear); dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth); updateLabel(); } }; //익명 내부 클래스 형태의 이벤트 처리 (시간관련) TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener(){ //이벤트 핸들러 //TimePicker view : TimePicker 객체 //int hourOfDay : 변경한 시간 전달 //int minute : 변경한 분 전달 public void onTimeSet(TimePicker view, int hourOfDay,int minute){ dateAndTime.set(Calendar.HOUR_OF_DAY,hourOfDay); dateAndTime.set(Calendar.MINUTE,minute); updateLabel(); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //날짜를 셋팅하기 위한 버튼 Button btn = (Button) findViewById(R.id.dateBtn); //버튼 클릭시 이벤트 처리 btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //전달되는 인자 //ChronoDemo.this : 사용중인 Activity 객체 //d : DatePickerDialog 사용시 발생한 이벤트를 처리하는 객체 //dateAndTime.get(Calendar.YEAR): 년도 //dateAndTime.get(Calendar.MONTH) : 월 //dateAndTime.get(Calendar.DAY_OF_MONTH) : 일 new DatePickerDialog(ChronoDemo.this, d, dateAndTime .get(Calendar.YEAR), dateAndTime.get(Calendar.MONTH), dateAndTime.get(Calendar.DAY_OF_MONTH)).show(); } }); //시간을 셋팅하기 위한 버튼 Button btn2 = (Button)findViewById(R.id.timeBtn); btn2.setOnClickListener(new View.OnClickListener() { //전달되는 인자 //ChronoDemo.this : 사용중인 Activity 객체 //t : TimePickerDialog 사용시 발생한 이벤트를 처리하는 객체 //dateAndTime.get(Calendar.HOUR_OF_DAY): 시간 //dateAndTime.get(Calendar.MINUTE) : 분 public void onClick(View v) { new TimePickerDialog(ChronoDemo.this,t, dateAndTime.get(Calendar.HOUR_OF_DAY), dateAndTime.get(Calendar.MINUTE), true).show(); } }); //날짜와 시간이 셋팅되는 TextView dateAndTimeLabel = (TextView) findViewById(R.id.dateAndTime); updateLabel(); } //Calendar 객체의 날짜와 시간을 TextView에 매칭시키는 메소드 private void updateLabel(){ dateAndTimeLabel.setText(fmtDateAndTime.format(dateAndTime.getTime())); } }
'Android > 기본' 카테고리의 다른 글
Intent Tab 권한설정, Manifest.xml(설정) (0) | 2012.04.28 |
---|---|
Tab 탭 (0) | 2012.04.28 |
Gallery ImageView (0) | 2012.04.28 |
AutoComplete 자동완성기능 (0) | 2012.04.28 |
그리드 Grid (0) | 2012.04.28 |