이번에는  DatePicker, TimePicker, Analog/DigitalClock에 대해서 알아보려고 합니다.

 

 

1. DatePicker & TimePicker 위젯

DatePicker와 TimePicker는 제한된 크기를 가진 스마트폰 화면에서

년/월/일 또는 시/분을 쉽게 선택할 수 있게 해준다.

 

두 위젯 모두 현재 activity 위에 별도의 dialog로 팝업 시켜 사용 할 수도 있으며,

이 경우 DataPickerDialog, TimePickerDialog 객체를 사용한다.

 

 

DatePicker / DatePickerDialog

년/월/일을 사용자에게 입력 받는다.

 

DatePicker

  • void init (int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener callBack)

    메소드를 통해 사용자에게 보여질 초기 년/월/일을 설정하고 DatePicker.OnDateChangedListener 객체를 지정한다.

'월'을 지정하는 int dayOfMonth인자는 0~11의 값으로 1월~12월을 나타낸다.

 

DatePickerDialog는 다음과 같은 생성자를 를 이용해 초기화를 한다.

  • DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

 

새 입력으로 기존 값이 변경되면 등록된 Listener객체 내부의

  • DatePicker.OnDataChangedListener:onDateChanged(),
  • DatePickerDialog.OnDataSetListener:onDateSet()

   callback 메소드가 호출 됨으로 callback 메소드 안에서 새로 입력된 년/월/일을 저장하거나 처리하여야 한다.

 

특히 dialog 객체의 경우 dialog가 close되면 입력 받은 값은 날아가버림으로 callback을

통한 저장/처리가 중요하다.

 

 

TimePicker / TimePickerDialog

사용자에게서 시/분을 입력 받는다.

 

TimePicker의 경우

  • void setCurrentHour(Integer currentHour)
  • void setCurrentMinute(Integer currentMinute)
  • void setIs24HourView(Boolean is24HourView)

    를 통해 초기값을 설정 할 수 있다. 시간은 0~23, 분은 0~59 사이의 int 값을 입력 받는다.

  • void setOnTimeChangedListener(TimePicker.OnTimeChangedListener callback)

    를 사용해 onTimeChanged() abstract 메소드가 구현된 Listener 객체를 등록 하여 사용자 입력을 저장/처리 한다.

 

TimePickerDialog는 다음과 같은 생성자를 통해 초기화를 한다.

TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

 

DatePickerDialog와 마찬가지로 사용자가 새로운 시/분을 입력 후 dialog가 닫히면

입력된 값이 따로 저장되지 않으므로 Listener객체의 onTimeSet() abstract callback 메소드를

구현하여 사용자입력을 저장/처리 하여야 한다.

 

TimePicker(Dialog)에서는 시간을 12시간(AM/PM) 방식과 24시간 방식으로 표현할 수 있는데,

TimePicker 객체는 void setIs24HourView(Boolean is24HourView) 메소드를 사용하고

TimePickerDialog객체는 생성자의 인자중 is24HourView를 true/false로 표시 모드를 설정한다.

 

 

DatePickerDialog 와 TimePickerDialog 예제 (main.xml)


소스 펼치기

 

 


DatePickerDialog 와 TimePickerDialog 예제 (DateAndTimePickerDemo.xml)


소스 펼치기

 



실행 화면은 다음과 같다.

 

 

 

 

2. Analog & Digital Clock

아나로그와 디지털 클럭은 AnalogClock과 DigitalClock class를 사용해 간단히 구현 가능하다.

 

Analog & Digital Clock 예제 (main.xml)


소스 펼치기




실행화면은 다음과 같다







저작자 표시 비영리 변경 금지
신고
Posted by 무한만족 i티거