Android Kotlin开发整数计算器时EditText相加+号报错如何解决
问题原因分析
- 核心错误是你尝试对两个
EditText控件对象直接执行加法运算,Kotlin没有为EditText类定义+运算符的重载逻辑,因此编译器直接报错,这就是加号标红的根本原因。 - 额外的逻辑错误:你写的
num1.toString().toInt()、num2.toString().toInt()两行代码没有保存转换后的整数结果,执行后转换值直接被丢弃,完全没有起到作用。而且你直接调用EditText的toString()方法拿到的是控件本身的对象描述,不是用户输入的内容,就算你存了结果逻辑也是错的。
正确修改方案
首先需要通过EditText的text属性拿到用户输入的内容,再转成整数保存后执行加法:
fun add(num1: EditText, num2: EditText){ try { // 先拿到输入文本转成整数并保存 val n1 = num1.text.toString().toInt() val n2 = num2.text.toString().toInt() answer.setText((n1 + n2).toString()) } catch (e: NumberFormatException) { answer.text = "Input Error" } }
内容的提问来源于stack exchange,提问作者Andrew Ulanov
相关产品推荐
相关产品推荐

