数据不通过 Intent 在活动之间传递

Data not being passed between activities through Intent

//In MainActivity
binding.doneButton.setOnClickListener {
            checkValid()
            if (valid){
                val bmi: Double = calculateBmi().round(1)
                val bmr: Double = calculateBmr().round(2)
                Intent(this, DailyActivity::class.java).also{
                    intent.putExtra("EXTRA_BMI", bmi)
                    intent.putExtra("EXTRA_BMR", bmr)
                    startActivity(it)
                }

            }
        }
//In DailyActivity
var bmi = intent.getDoubleExtra("EXTRA_BMI", 0.0)
var bmr = intent.getDoubleExtra("EXTRA_BMR", 0.0)

我想将这两个 Double 值 bmi 和 bmr 从我的 MainActivity 传递到 DailyActivity。我检查了这些值,它们在 MainActivity 中工作正常。但是当我尝试将它们传递给 DailyActivity 时,使用的是默认值 0.0。我也尝试了 intent?.extras?.getDouble("EXTRA_BMI") 但这也不起作用。我该如何解决这个问题?

(顺便说一句,round 是我在 SO 上找到的一个扩展函数。它工作正常。这不是代码不起作用的原因)

在您的 also 块中,通过调用 intent.putExtra(...) 您正在改变当前 Activity 的意图(您将使用 this@MainActivity.intent 访问的意图),而不是您刚刚创建的一个。

你要的是

Intent(this, DailyActivity::class.java).also{
    it.putExtra("EXTRA_BMI", bmi)
    it.putExtra("EXTRA_BMR", bmr)
    startActivity(it)
}