Заменить textView для NumberPicker - Android

Итак, у меня есть некоторые textViews что их входные данные являются числами, но чтобы быть менее подверженными ошибкам, я хочу заменить их на numberPickers,

Что я сделал

  • TextViews Работа
  • NumberPickers Работа
  • Любые математические и расчетные работы

Что мне нужно:

  • Заменить метод ввода

  • Это то, что у меня есть для моего textViews

    when {
    
            time.text.isEmpty() && (distance.text.isNotEmpty() && pace.text.isNotEmpty()) ->
                calculatePace(null, distance.text.toString().toDouble(), pace.text.toString())
    
            distance.text.isEmpty() && (time.text.isNotEmpty() && pace.text.isNotEmpty()) ->
                calculatePace(time.text.toString(), null, pace.text.toString())
    
            pace.text.isEmpty() && (time.text.isNotEmpty() && distance.text.isNotEmpty()) ->
                calculatePace(time.text.toString(), distance.text.toString().toDouble(), null)
    
    
            else -> {
                Toast.makeText(this, "Please check fields",
                        Toast.LENGTH_SHORT).show()
            }
        }
    

Это мои pickers:

    val pickerMinutes = numberPicker as NumberPicker
    val pickerSeconds = numberPickerSeconds as NumberPicker
    pickerMinutes.minValue = 0
    pickerMinutes.maxValue = 60
    pickerMinutes.wrapSelectorWheel = false
    pickerMinutes.isEnabled = true

    pickerSeconds.minValue = 0
    pickerSeconds.maxValue = 60
    pickerSeconds.wrapSelectorWheel = false
    pickerSeconds.isEnabled = true

Любая помощь будет очень ценится

Спасибо

1 ответ

If you look at the NumberPicker API, you will see there is a method getValue() which returns selected value, which is int return type. ты можешь использовать toDouble() as your calculation method is taking double type

NB as NumberPicker always works with integer I think you can modify your calculation method, as it will never get Double from NumberPicker

please confirm, if I didn't get what you want

Другие вопросы по тегам