You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android使用Intent在Activity间传Double值仅拿到默认0.0如何解决

问题原因

你的代码存在作用域变量引用错误:also块的入参it才是你新创建的、用于跳转到DailyActivity的Intent实例,而你调用putExtra时用的intent是MainActivity本身持有的、启动当前页面的系统默认Intent,两个不是同一个对象,参数根本没有被写入跳转用的Intent,因此目标页无法读到传入值,只能返回默认的0.0。

修复方案

修改MainActivity中also块内的代码,将参数写入到新创建的跳转Intent即可,DailyActivity的取值代码无需改动。

修复后的MainActivity代码如下:

//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{ jumpIntent ->
            // 给跳转用的目标Intent添加参数
            jumpIntent.putExtra("EXTRA_BMI", bmi)
            jumpIntent.putExtra("EXTRA_BMR", bmr)
            startActivity(jumpIntent)
        }
    }
}
可选优化建议
  • 将参数Key定义为全局公共常量,避免两端手写字符串出现拼写错误导致的取值失败:
// 放到公共常量类或者kt文件顶层
const val EXTRA_BMI = "EXTRA_BMI"
const val EXTRA_BMR = "EXTRA_BMR"

两端传值、取值时直接引用该常量即可消除拼写出错的风险。

内容的提问来源于stack exchange,提问作者rengsayed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 06:06:01