NOW OR NEVER

[Android] TimePicker Interval 설정 본문

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

            }
        }

 

Comments