Android
[Android] TimePicker Interval 설정
LAURA
2023. 9. 12. 10:55
반응형
Time Picker
- 목표 : 5분 단위로 interval 설정
- 첫 번째 시도 방법 (실패)
- xml 파일 자체에서 android:minuteInterval 속성으로 5 설정
- 안드로이드 12부터 구현이 가능한 속성이라 실패하나 싶어 앱 수준 그래들 파일에서 targetSdkVersion을 31 이상으로 설정해봤는 데 안됐다. -> 코틀린 코드로 직접 구현해야겠다는 생각이 들었다,,,
<TimePicker
android:id="@+id/makeScheduleTimePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:timePickerMode="spinner"
android:minuteInterval="5"/>
- 두 번째 시도 방법(성공)
- 5분 단위 배열 생성해서 분 선택 spinner에 적용시키기
- padStart(문자열 길이, 늘어난 길이만큼 추가할 문자열) -> 예를 들어 값이 3인 문자열을 padStart(2,'0') 한다면 03으로 반환
fragmentMakeScheduleBinding.run {
makeScheduleTimePicker.run {
// 분 단위 스피너 찾기
val minutePicker = findViewById<NumberPicker>(
resources.getIdentifier("minute", "id", "android")
)
// 5분 간격의 배열을 생성해 분 단위 스피너에 적용하기
val minuteValues = Array(12) { (it * 5).toString().padStart(2, '0') }
minutePicker.minValue = 0
minutePicker.maxValue = 11
minutePicker.displayedValues = minuteValues
}
}