2017-10-18 128 views
1

所以我有一些textViews,他们的输入是数字,但为了不太容易出错我想用numberPickers来代替它。替换textView for NumberPicker - Android

我做了什么

  • 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 

任何帮助将是非常赞赏

谢谢

+0

不太清楚你想要什么?到目前为止,我已经意识到,你是否希望输入字段作为数字选择器而不是TextView,并且需要相同的计算,是吗? @Joedk –

+0

嗨对不起,我已经完成了计算(功能)。但目前的输入是textViews,我想将它们替换为数字选择器:) – Joedk

+0

如果您需要输入为数字,则可以将EditText inputType属性设置为“number”。 “android:inputType =”number“ – Rachit

回答

0

如果你看看NumberPicker API,你会看到有一个方法getValue()它返回选定的值,这是int返回类型。你可以使用toDouble()为您的计算方法以double类型

NB为NumberPicker总是与整数工作我想你可以修改你的计算方法,因为它永远不会从NumberPicker

获得双倍

请确认,如果我没't得到你想要的东西

+0

去确认,谢谢:) – Joedk

+0

这给了我错误pickerMinutes.value &&(distance.text.isNotEmpty()&& pace.text.isNotEmpty()) - >我试过它,我应该告诉你,也许整个班级?(我正在使用Kotlin,这就是为什么我使用.value而不是价值 – Joedk

+0

这会有所帮助,请给我你的课程以https://pastebin.com/链接。这将帮助我深入挖掘 –