본문 바로가기
안드로이드

[안드로이드/Kotlin] DatePickerDialog 사용하기

by krapoi 2022. 10. 5.
반응형

안드로이드 앱을 만들다가 날짜를 입력받아야 하는 상황을 만났는데, 일일이 text로 받기에는 너무 번거로운 것 같아서 calendar 같은 것을 찾아보다가 발견한 친구이다.

이렇게 생겨먹은 친구다

생각보다 유용하게 쓰일 것 같다.

 

이 친구가 생성자로 OnDateSetListener를 받는데 이 Listener를 먼저 만들어 줘야 한다.

val data = DatePickerDialog.OnDateSetListener { view, year, month, day ->
                binding.startDate.text = "${year}/${month}/${day}"
            }

나는 이런 식으로 만들어 줬다. 

이 코드는 사용자가 날짜를 선택하고 OK 버튼을 눌렀을 때 startDate의 text가 바뀌는 코드이다.

 

이런 식으로 Listener를 하나 만들고 Dialog를 생성해주자.

binding.startDate.setOnClickListener {

val cal = Calendar.getInstance()
val data = DatePickerDialog.OnDateSetListener { view, year, month, day ->
binding.startDate.text = "${year}/${month}/${day}"

}
DatePickerDialog(this, data, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)).show()

사실 DatePickerDialog는 생성자로 Listener만 받는 것이 아니라 context와 현재 연도, 달, 일 까지 받는다.

dialog를 띄울 때 오늘 날짜를 기본 데이터로 잡아주기 때문이다.

 

아무튼 이제 테스트해보자.

이 친구가 startDate이다.

눌러보면

잘 나온다. 그리고 OK를 누르면

날짜가 입력되는 것을 볼 수 있다.

반응형