当我尝试添加两个 edittext 时应用程序不断崩溃

App Keeps Crashing When I'm trying to add two editext

当我尝试在 android studio 中添加两个编辑文本的值时,我的 phone 应用程序总是崩溃 我已经尽我所能更改数据类型

package com.example.danculator
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
lateinit var addbtn: Button
lateinit var fnum: EditText
lateinit var snum: EditText
lateinit var ans: EditText

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
      addbtn=findViewById(R.id.add) as Button
        fnum=findViewById(R.id.fnum) as EditText
        snum=findViewById(R.id.snum) as EditText
        ans=findViewById(R.id.ans) as EditText
       addbtn.setOnClickListener {
           ans.setText(fnum.text.toString().toInt() + snum.text.toString().toInt())

       }

    }
}

不要使用需要资源 ID 的 setText(int),而是使用 setText(CharSequence)。也就是说,将您的 Int 计算结果转换为 String:

ans.setText((fnum.text.toString().toInt() + snum.text.toString().toInt()).toString())

此外,为了将来参考,检查崩溃堆栈跟踪应该是尝试找出问题所在的第一步。参见 Unfortunately MyApp has stopped. How can I solve this?

我以前没用过Kotlin,但是看看这部分代码:

ans.setText(fnum.text.toString().toInt() + snum.text.toString().toInt())

在这部分中,您对两个整数值求和,并希望将它们设置为 ans 的文本,而您应该为 ans.So 使用字符串值,您应该再次将其转换为字符串:

ans.setText((fnum.text.toString().toInt() + snum.text.toString().toInt()).toString())