반응형
안드로이드 앱을 만들다가 날짜를 입력받아야 하는 상황을 만났는데, 일일이 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를 누르면
날짜가 입력되는 것을 볼 수 있다.
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드/Kotlin] EditText SaveState 에러 (0) | 2023.10.31 |
---|---|
[kortlin/안드로이드] 안드로이드 NFC Write 해보기 (0) | 2023.06.01 |
[안드로이드/Kotlin] 카메라 사용하고 이미지 뷰에 띄워보기 (0) | 2022.08.26 |
[안드로이드/Kotlin] ViewPager2 사용해보기 (0) | 2022.08.25 |
[안드로이드/Kotlin] Retrofit2 사용하기 (0) | 2022.08.23 |