通过Intent传递整数始终返回默认值问题求助
解决Intent传递整数始终返回默认值的问题
核心问题出在代码执行顺序上:你先调用startActivity(intent)启动第二个Activity,之后才给Intent添加"number"参数,这时候启动Activity用的是还没附加数据的原始Intent,所以第二个Activity必然获取不到正确值,只会返回默认的0。
修正后的第一个Activity代码
//first activity val count = snapshot.count val intent = Intent(this, Second::class.java) intent.putExtra("number", count) // 先添加数据,再启动Activity startActivity(intent) finish()
第二个Activity代码无需修改
//second activity val returned = intent.getIntExtra("number", 0) room.text = returned.toString()
补充说明
你之前尝试把count转成字符串传递也返回null,本质原因和上面一样——都是启动Activity的时机早于添加数据的时机,导致Intent没有携带任何额外信息。
记住Intent传递数据的正确流程:创建Intent实例 → 调用putExtra()添加所有需要传递的数据 → 最后调用startActivity()启动目标组件,顺序绝对不能颠倒。
内容的提问来源于stack exchange,提问作者Alonso Tan
相关产品推荐
相关产品推荐

