尝试获取所选项目时,如何使 Spinner 功能停止崩溃我的应用程序?
How can I make Spinner function stop crashing my app when trying to get the selected item?
我无法从微调器获取字符串值而不会导致我的应用程序崩溃,我想根据 when 函数中的 2 对选定项做出选择
val convertFrom = spnConvertFrom.selectedItem.toString()
val convertTo = spnConvertTo.selectedItem.toString()
val value = initialAmount.toString()
var valor2= value.toDouble()
when {
//Condicion
(convertFrom.equals("NIO") && convertTo.equals("USD")) -> currencyConverted.apply {
text = "Something"
}
else -> Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show()
}
我尝试将语法从 = 切换为 .equals() (同样的事情)阅读了一些关于它在比较时为 null 的内容,但不知道如何检查它,我是在 android
中对 Kotlin 和编程还很陌生
有几行可能导致 NPE
- 您正在检索
selectedItem
的行。您可以通过在微调器实例 之后添加 ?
运算符来处理这些问题
- 将
value
转换为 Double. You can avoid the error by using
toDoubleOrNulland providing a default value in case that
value` 的行不是数字
- 设置
currencyConverted
的text
的行。如果它是可选的,您还应该在那里添加 ?
运算符:
val convertFrom = spnConvertFrom?.selectedItem.toString()
val convertTo = spnConvertTo?.selectedItem.toString()
val value = initialAmount.toString()
var valor2 = value.toDoubleOrNull() ?: 0.0
when {
//Condicion
(convertFrom.equals("NIO") && convertTo.equals("USD")) -> currencyConverted?.text = "Something"
else -> Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show()
}
我无法从微调器获取字符串值而不会导致我的应用程序崩溃,我想根据 when 函数中的 2 对选定项做出选择
val convertFrom = spnConvertFrom.selectedItem.toString()
val convertTo = spnConvertTo.selectedItem.toString()
val value = initialAmount.toString()
var valor2= value.toDouble()
when {
//Condicion
(convertFrom.equals("NIO") && convertTo.equals("USD")) -> currencyConverted.apply {
text = "Something"
}
else -> Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show()
}
我尝试将语法从 = 切换为 .equals() (同样的事情)阅读了一些关于它在比较时为 null 的内容,但不知道如何检查它,我是在 android
中对 Kotlin 和编程还很陌生有几行可能导致 NPE
- 您正在检索
selectedItem
的行。您可以通过在微调器实例 之后添加 - 将
value
转换为Double. You can avoid the error by using
toDoubleOrNulland providing a default value in case that
value` 的行不是数字 - 设置
currencyConverted
的text
的行。如果它是可选的,您还应该在那里添加?
运算符:
?
运算符来处理这些问题
val convertFrom = spnConvertFrom?.selectedItem.toString()
val convertTo = spnConvertTo?.selectedItem.toString()
val value = initialAmount.toString()
var valor2 = value.toDoubleOrNull() ?: 0.0
when {
//Condicion
(convertFrom.equals("NIO") && convertTo.equals("USD")) -> currencyConverted?.text = "Something"
else -> Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show()
}