안드로이드

[안드로이드] DatePickerDialog : 날짜 선택하기 (Kotlin)

디벨로펄 2022. 10. 27.
반응형

내역을 추가할 때, 날짜를 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

반응형

댓글