数据不通过 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)
}
//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)
}