尝试将两个 EditText 的乘积显示为另一个 activity 中的 TextView

Trying to show the product of two EditTexts as a TextView in another activity

我在将两个 EditText 的乘积传递给另一个 activity 中的 TextView 时遇到了很多麻烦。这是我的 MainActivity 代码。

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button1: Button = findViewById(R.id.button1)
        val editText1: EditText = findViewById(R.id.editText1)
        val editText2: EditText = findViewById(R.id.editText2)
        val firstNumber = editText1.toString().toInt()
        val secondNumber = editText2.toString().toInt()
        val product = firstNumber * secondNumber

        button1.setOnClickListener{

            val intent = Intent(this, Activity2::class.java)
            intent.putExtra("RESULT_PRODUCT", product)
            startActivity(intent)
        }
    }
}

这是我的 Activity2 代码:

class Activity2 : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_2)

        val product = intent.getIntExtra("RESULT_SUM", 0)
        textView1.text = product.toString()
    }
}

我对 Kotlin 和 Android Studio 比较陌生,但这导致左右崩溃。

首先,你必须计算OnClickListener里面的product才能得到正确的结果。

button1.setOnClickListener{

    val firstNumber = editText1.text.toString().trim()
    val secondNumber = editText2.text.toString().trim()

    if(!(firstNumber.isEmpty() or secondNumber.isEmpty())) {
        val product = firstNumber.toInt() * secondNumber.toInt()

        val intent = Intent(this, Activity2::class.java)
        intent.putExtra("RESULT_PRODUCT", product)
        startActivity(intent)
    } else {
        //Show messages
    }
}

然后 您必须使用您在 activity 中使用的确切密钥 RESULT_PRODUCT 来通过 intent

传递数据
val product = intent.getIntExtra("RESULT_PRODUCT", 0)

您正在从 MainActivity 传递 "RESULT_PRODUCT",但在您的 Activity2 中得到 "RESULT_SUM"。你应该在第二个 activity.

中使用 intent.getIntExtra("RESULT_PRODUCT", 0)