Android/Kotlin
[Android][Kotlin] TimePickerDialog (clock/spinner) 설정하기
yoo.o
2020. 5. 30. 04:40
반응형
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>
반응형