NumberPicker的值不变

时间:2019-08-13 13:18:24

标签: kotlin android-widget android-number-picker

我是android和Kotlin的初学者。 我想从NumberPicker获取设置为displayValues的字符串值。 我试过了,但是它只返回整数。

经过一番搜索,我发现了一个问题Formatted value of NumberPicker disappears onClick,这也许可以解决我的问题。

但是我是初学者,从未学习过Java,因此无法将其应用于我的代码。我需要您的帮助来确定我的代码是否正确,如果正确,我希望得到可以应用于kotlin的解决方案 谢谢!

    val pickers = arrayListOf(picker1,picker2,picker3,picker4,picker5,picker6,picker7)
    for (picker in pickers) {
        picker.displayedValues = arrayOf(
            "0", "30", "40", "50", "60", "1시간", "1시간 30분", "2시간", "2시간 30분", "3시간", "3시간 30분", "4시간",
            "4시간 30분", "5시간"
        )
        picker.minValue = 0
        picker.maxValue = 13
        picker.setFormatter { num -> picker.displayedValues[num] }

1 个答案:

答案 0 :(得分:0)

那里对科特林的答案的翻译是

// do this outside the loop because it doesn't depend on picker
val f = NumberPicker::class.java.getDeclaredField("mInputText")
f.setAccessible(true)

// inside the loop
val inputText = f.get(picker) as EditText
inputText.setFilters(arrayOf())

(由try-catch包围,您也可以在Kotlin中进行此操作,但是特定的catch毫无用处;如果这样做,则应该位于for循环之外)。