java.lang.NumberFormatException:对于输入字符串:kotlin中的“ 16000 $”

我想在单击增加btn或减少btn之前使显示器显示“ 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()+"$"
        }

hufu1971 回答:java.lang.NumberFormatException:对于输入字符串:kotlin中的“ 16000 $”

您正在尝试将带有“ $”的字符串解析为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()+"$"
        }
,

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,save
    displayPrice()
}


/*this function just shows price*/
fun displayPrice() {
   val price = intent.getIntExtra("price")

   productprice.text= "$price\$"
}
本文链接:https://www.f2er.com/2733160.html

大家都在问