본문 바로가기
Android 개발/Android UI

Android에서 Time Picker 생성하기

by Developer88 2017. 1. 15.
반응형

안드로이드에서 TimePicker를 사용해서 사용자에게 

시간을 선택하도록 할 수 있는데요.

오늘은 이 TimePicker에 대해서 정리해보겠습니다.



1. XML에서 TimePicker 생성


참고로, 우리가 TimePicker는 저희들이 보통 Dropdown메뉴 같다고 하는 Spinner와는 다른 UI형태를 가지고 있습니다.

가장 최근 버전의 TimePicke Ui는 아래이미지와 같은데요.




위와 같은 TimePicker를 XML에서 부르는 방법은, 다음과 같습니다.




음, 그런데 옛날처럼 스크롤 하면서 내리거나 올리는 방식이 더 좋아보인다구요?

네, 그럼 xml에서 옵션을 하나만 더 넣으시면 되는 데요.

timePickerMode="spinner"  요것만 더 넣어주시면 됩니다.




그럼 아래와 같이 위아래로 스크롤하면서 바꿀 수 있는 형태로 바뀝니다.




2. Java파일에서 시간과 분 받아오기


이제 Java파일에서 불러와서 사용자가 선택한 시간과 분을 받아오겠습니다.

TimePicker를 변수에 받아와서, getHour(), getMinute()으로 시간과 분을 얻어올 수 있습니다.

그런데, 주의할 것이 API23 이후부터는 getHour를 쓰구요, 그 이전버전은 deprecated된 getCurrentHour()라는 메소드를 사용해야 합니다.




이렇게 해서 일반적으로 xml로 UI에 올리고, 시간과 분을 가져오는 것에 대해서 알아보았는데요.

아래에서는 안드로이드에서 권장하는 방법인 Dialog형태로 생성하는 방법에 대해서 정리해보겠습니다.



3. TimePickerDialog 생성해보기


먼저 TImePickerDialog를 만들구요, DialogFragment를 상속받습니다.

그리고, OnTimeSetListener 인터페이스를 구현하면 되는데요.




이어서, onCreateDialog() 라는 메소드를 오버라이드 해주고, Calendar클래스에서 현재시간을 가져와서, 

새로운 TimePickerDialog 객체를 생성해서 리턴해줍니다.




이제, MainActivity로 돌아와서 버튼을 하나만들고 버튼을 클릭할 수 있도록 해줍니다.

그 다음으로, 위에서 생성한 TimePickerFragment를 생성하고 show()메소드를 이용해서서 보여질수 있도록 하면 되는데요.




아래와 같은 TimePickerDialog를 xml없이 생성할 수 있게 되었습니다.




728x90

댓글