chacha's

🧨 [ NumberPicker - Error : ] ArrayIndexOutOfBoundsException 본문

Android/TIL

🧨 [ NumberPicker - Error : ] ArrayIndexOutOfBoundsException

Cha_Cha 2021. 6. 13. 17:25
 Number picker with Dynamic List - stack overflow
 NumberPicker Out of bounds - stack overflow
 를 참고하여 작성한 글입니다.

NumberPicker에서 스크롤을 위로 올릴 때 아래와 같은 에러를 만났습니다.

... E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.studywithme, PID: 32239
    java.lang.ArrayIndexOutOfBoundsException: length=4; index=29
        at android.widget.NumberPicker.ensureCachedScrollSelectorValue(NumberPicker.java:1915)
        at android.widget.NumberPicker.initializeSelectorWheelIndices(NumberPicker.java:1728)
        at android.widget.NumberPicker.setMaxValue(NumberPicker.java:1484)

아래의 코드는 에러를 만났을 때의 코드입니다.

        alarmSettingBinding.alarmNumPicker.run {
            this.maxValue = maxValue - 1
            this.displayedValues = minutesArray.toArray(arrayOf(""))
            this.value = setValue
        }

위의 코드에 displayedValues = null을 추가해주면 ArrayIndexOutOfBoundsException을 해결할 수 있습니다.

        alarmSettingBinding.alarmNumPicker.run {
            this.displayedValues = null
            this.maxValue = maxValue - 1
            this.displayedValues = minutesArray.toArray(arrayOf(""))
            this.value = setValue
        }

 

Comments