티스토리 뷰

반응형

 

TimePickerDialog 띄우기

TimePickerDialog(context, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true).show()

 

 

getTime함수가 호출되면 다이얼로그를 띄우고, 선택된 시간을 다시 그 버튼의 텍스트로 띄우는 코드 

fun getTime(button: Button, context: Context){

        val cal = Calendar.getInstance()

        val timeSetListener = OnTimeSetListener { timePicker, hour, minute ->
            cal.set(Calendar.HOUR_OF_DAY, hour)
            cal.set(Calendar.MINUTE, minute)

            button.text = SimpleDateFormat("HH:mm").format(cal.time)
        }

        TimePickerDialog(context, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true).show()

    }

 

 

 

 

 

 

Spinner로 모양 바꾸기

왼쪽 두개가 spinner, 오른쪽이 clock이다

디폴트가 clock모양으로 설정되어있어서 spinner로 바꿔줬다.

 

 

style.xml에 새로운 타임피커 스타일을 만들어 준 후

<style name="MyTimePickerTheme" parent="android:Widget.Material.Light.TimePicker">
        <item name="android:timePickerMode">spinner</item>
    </style>

 

style.xml에 있는 AppTheme 스타일(혹은 사용하고 있는 기본 스타일)안에 추가해주면 된다. 

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        ...
        <item name="android:timePickerStyle">@style/MyTimePickerTheme</item>
    </style>

 

반응형