java.lang.NumberFormatException:对于输入字符串:kotlin 中的“16000$”
java.lang.NumberFormatException: For input string: "16000$" in kotlin
我想让显示器在点击增加按钮或减少按钮之前显示“16000$”。
当我编写类似此错误的代码时:java.lang.NumberFormatException:对于输入字符串:“16000$。但我应该显示 $。让我们检查我的代码并帮助我。
var productprice = findViewById<TextView>(R.id.productPrice)
productprice.text= intent.getStringExtra("price")+"$"
var price = productPrice.text.toString().toInt()
var inc_val= price
var getPrice = price
decrease.isEnabled=false
increase.setOnClickListener {
increaseInteger()
getPrice+= inc_val
productprice.text=getPrice.toString()+"$"
}
decrease.setOnClickListener {
decreaseInteger()
getPrice -= inc_val
productprice.text=getPrice.toString()+"$"
}
var price = productPrice.text.toString().toInt()
- 您尝试在此处将“16000$”转换为 Int。请先在此处获取子字符串。
形式上,正确的代码是:
val priceText = productPrice.text.toString()
val price = priceText.substring(0, priceText.length - 1).toInt()
不过我真的建议你在内部储存价值。你的价格是模型的一部分。例如。您可以避免文本解析,而只是从模型中读取值。例如。代码将是这样的:
var price = intent.getIntExtra("price") // we store int value here, not String
var inc_val= price
decrease.isEnabled=false
displayPrice()
increase.setOnClickListener {
intent.setIntExtra(intent.getIntExtra("price") + inc_val) // read, update, save
displayPrice()
}
decrease.setOnClickListener {
intent.setIntExtra(intent.getIntExtra("price") - inc_val) // read, update, save
displayPrice()
}
/*this function just shows price*/
fun displayPrice() {
val price = intent.getIntExtra("price")
productprice.text= "$price$"
}
您正在尝试将带有“$”的字符串解析为 int,因此您收到 NumberFormatException。
试试这个:
var productprice = findViewById<TextView>(R.id.productPrice)
productprice.text= intent.getStringExtra("price")+"$"
var price = parseInt(intent.getStringExtra("price"))
var inc_val= price
var getPrice = price
decrease.isEnabled=false
increase.setOnClickListener {
increaseInteger()
getPrice+= inc_val
productprice.text=getPrice.toString()+"$"
}
decrease.setOnClickListener {
decreaseInteger()
getPrice -= inc_val
productprice.text=getPrice.toString()+"$"
}
我想让显示器在点击增加按钮或减少按钮之前显示“16000$”。 当我编写类似此错误的代码时:java.lang.NumberFormatException:对于输入字符串:“16000$。但我应该显示 $。让我们检查我的代码并帮助我。
var productprice = findViewById<TextView>(R.id.productPrice)
productprice.text= intent.getStringExtra("price")+"$"
var price = productPrice.text.toString().toInt()
var inc_val= price
var getPrice = price
decrease.isEnabled=false
increase.setOnClickListener {
increaseInteger()
getPrice+= inc_val
productprice.text=getPrice.toString()+"$"
}
decrease.setOnClickListener {
decreaseInteger()
getPrice -= inc_val
productprice.text=getPrice.toString()+"$"
}
var price = productPrice.text.toString().toInt()
- 您尝试在此处将“16000$”转换为 Int。请先在此处获取子字符串。
形式上,正确的代码是:
val priceText = productPrice.text.toString()
val price = priceText.substring(0, priceText.length - 1).toInt()
不过我真的建议你在内部储存价值。你的价格是模型的一部分。例如。您可以避免文本解析,而只是从模型中读取值。例如。代码将是这样的:
var price = intent.getIntExtra("price") // we store int value here, not String
var inc_val= price
decrease.isEnabled=false
displayPrice()
increase.setOnClickListener {
intent.setIntExtra(intent.getIntExtra("price") + inc_val) // read, update, save
displayPrice()
}
decrease.setOnClickListener {
intent.setIntExtra(intent.getIntExtra("price") - inc_val) // read, update, save
displayPrice()
}
/*this function just shows price*/
fun displayPrice() {
val price = intent.getIntExtra("price")
productprice.text= "$price$"
}
您正在尝试将带有“$”的字符串解析为 int,因此您收到 NumberFormatException。
试试这个:
var productprice = findViewById<TextView>(R.id.productPrice)
productprice.text= intent.getStringExtra("price")+"$"
var price = parseInt(intent.getStringExtra("price"))
var inc_val= price
var getPrice = price
decrease.isEnabled=false
increase.setOnClickListener {
increaseInteger()
getPrice+= inc_val
productprice.text=getPrice.toString()+"$"
}
decrease.setOnClickListener {
decreaseInteger()
getPrice -= inc_val
productprice.text=getPrice.toString()+"$"
}