안드로이드
[안드로이드] DatePickerDialog : 날짜 선택하기 (Kotlin)
디벨로펄
2022. 10. 27. 23:19
반응형
내역을 추가할 때, 날짜를 calender로 받고 싶다.
오른쪽 calendar 아이콘 클릭 시 날짜 고르는 창이 뜨는 것이다.
이를 위해서는 DatePickerDialog를 사용하면 아래와 같은 결과를 얻을 수 있다.
아래와 같은 코드로 DatePickerDialog를 띄울 수 있다.
여기서 run{} 부분에 dialog에서 클릭한 날짜를 처리하는 로직을 추가하면 된다.
binding.imgbtnDate.setOnClickListener {
var calendar = Calendar.getInstance()
var year = calendar.get(Calendar.YEAR)
var month = calendar.get(Calendar.MONTH)
var day = calendar.get(Calendar.DAY_OF_MONTH)
context?.let { it1 ->
DatePickerDialog(it1, { _, year, month, day ->
run {
binding.editTvDate.setText(year.toString() + "." + (month + 1).toString() + "." + day.toString())
}
}, year, month, day)
}?.show()
}
-- 색깔이 맘에 안든다. themes.xml을 수정해서 색을 간단히 바꿀 수 있다.(themes.xml이다.)
colorAccent를 자신이 원하는 컬러로 바꿔주면 된다...이걸 바꾸면,
editText에 focusing이 잡히거나, 할때도 색깔이 적용된다.( 일반적으로, 이 방법 더 추천...)
night모드도 바꿔준다.
<item name="colorAccent">@color/primary_color</item>
결과~ 좌좌좐~
만약 Calendar만 다른 색깔을 쓰고 싶다면 아래와 같은 방법으로 적용한다.
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.EventMoneyManager" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/primary_color</item>
<item name="colorPrimaryDark">@color/purple_700</item>
<item name="colorAccent">@color/teal_200</item>
<!-- Customize your theme here. -->
<!-- DatePicker의 스타일 설정 -->
<item name="android:datePickerDialogTheme">@style/MyDatePickerDialogTheme</item>
</style>
<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
<!-- 원하는 색 설정 -->
<item name="android:colorAccent">@color/primary_color</item>
<!-- No need to override 'datePickerStyle' -->
<!-- <item name="android:datePickerStyle">@style/MyDatePickerStyle</item> -->
</style>
</resources>
또는
참고
1. https://pickhada.tistory.com/27
2. https://stackoverflow.com/questions/28738089/how-to-change-datepicker-dialog-color-for-android-5-0
반응형