Изменить выбранный номер Цвет текста на значение изменено - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь изменить текущий выбранный цвет текста NumberPicker при каждом изменении его значения.

На данный момент у меня есть следующий код:

val values2 = arrayOf(
    "00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50"
)

numberPicker2.maxValue = 10
numberPicker2.minValue = 0
numberPicker2.displayedValues = values2
numberPicker2.descendantFocusability = NumberPicker.FOCUS_BLOCK_DESCENDANTS

val myValChangedListener2 =
    NumberPicker.OnValueChangeListener { picker, oldVal, newVal ->
        val count = picker.childCount
        for (i in 0 until count) {
            val child = picker.getChildAt(i)
            if (child is EditText) {
                if (child.text.toString() == values2[newVal]) {
                    child.textColor = getColor(R.color.iberdrola_orange)
                    child.typeface =  Typeface.create("sans-serif-thin", Typeface.BOLD)
                } else {
                    child.typeface = Typeface.create("sans-serif-thin", Typeface.NORMAL)
                    child.textColor = getColor(R.color.black)
                }
            }
        }
        picker.invalidate()
    }
    numberPicker2.setOnScrollListener { view, scrollState ->
        if (view is EditText) {
            val count = numberPicker2.childCount
            for (i in 0 until count) {
                val child = numberPicker2.getChildAt(i) as EditText
                if (child == view) {
                    view.textColor = getColor(R.color.iberdrola_orange)
                } else {
                    child.textColor = getColor(R.color.black)
                }
            }
        }
    }
    numberPicker2.setOnValueChangedListener(myValChangedListener2)

Цвет выбранного значения NumberPickerне меняется, по крайней мере, когда прокручивается и автоматически привязывается к центру.Просто, когда я касаюсь выбранного значения, оно становится оранжевым и жирным.

...