我無法從微調器獲取字串值而不會導致我的應用程式崩潰,我想根據 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() (同樣的事情)在比較時閱讀一些關于它的內容,但不知道如何檢查它,我對 Kotlin 很陌生,并且在安卓中編程
uj5u.com熱心網友回復:
有幾行可能會導致 NPE
- 您在其中檢索
selectedItem. 您可以通過?在微調器實體之后添加運算子來處理這些問題 - 轉換
value為Double. You can avoid the error by usingtoDoubleOrNulland providing a default value in case that值的行不是數字 - 您設定
textof的行currencyConverted。如果它是可選的,您也應該在?那里添加運算子:
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()
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/451121.html
