gpt4 book ai didi

android-studio - 退格键导致计算器崩溃

转载 作者:行者123 更新时间:2023-12-02 07:32:13 28 4
gpt4 key购买 nike

当我无输入时按退格按钮时,Android计算器应用会崩溃。
这段代码是用Kotlin编写的,IDE是Android Studio,而BackSpace在MainActivity.kt中的下面代码中标记为tvBack。

我应该如何处理此崩溃?

 //BACK
tvBack.setOnClickListener{
val string =tvResult.text.toString()
val string2=tvExpression.text.toString()
if(string.isEmpty()){
tvExpression.text = string2.substring(0,string2.length-1)

}else if(string2.isNotEmpty()){

tvResult.text=""
}else if(string2.isEmpty()){
return@setOnClickListener
}

最佳答案

问题是这一行:

tvExpression.text = string2.substring(0,string2.length-1)

如果您的string2为空,则 string2.length为0,因此此行的计算结果为
tvExpression.text = string2.substring(0,-1)

因此,这是无效的子字符串。

因此,在生成子字符串之前,应首先检查字符串是否不为空。您可以通过在 tvBack.setOnClickListener{之后添加以下行来做到这一点:
if (string2.length == 0) return;

//编辑:
请将您的代码编辑为以下内容:
    tvBack.setOnClickListener{
val string =tvResult.text.toString()
val string2=tvExpression.text.toString()
if(string2.isNotEmpty()){
tvExpression.text = string2.substring(0,string2.length-1)
tvResult.text=""
}

您的新错误的问题是,您的检查错误。
如果字符串为 而不是为空,则只想生成和使用子字符串。您的代码则相反

关于android-studio - 退格键导致计算器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60261403/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com