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

Android Jetpack Compose Kotlin Activity间传值显示null问题求助

Activity间传值显示null的问题排查与解决

问题原因

你在MainActivity的按钮点击逻辑里犯了一个细节错误:创建了用于启动MainActivity2的Intent实例navigate,但却把参数添加到了当前Activity自身的intent对象中,而非刚创建的navigate实例。这就导致传递的参数根本没被携带到目标Activity,所以MainActivity2拿到的textTitle自然是null。

对应错误代码片段:

val navigate = Intent(this@MainActivity, MainActivity2::class.java)
intent.putExtra("title", textTitle) // 错误:用了当前Activity的intent,不是要启动的navigate
startActivity(navigate)

解决办法

把putExtra的调用对象改成你创建的navigate Intent即可:

Button(onClick = {
    val navigate = Intent(this@MainActivity, MainActivity2::class.java)
    navigate.putExtra("title", textTitle) // 修正为给navigate添加参数
    startActivity(navigate)
}) {
    Text("跳转到MainActivity2") // 建议给按钮添加文本,方便测试操作
}

额外优化建议

为了避免出现"Hello null!"这类不友好的显示,可以在MainActivity2里做空值处理:

val textTitle = intent.getStringExtra("title") ?: "" // null时默认赋值为空字符串
Text(
    text = "Hello $textTitle!",
    modifier = modifier
)

或者更友好地替换默认值:

val textTitle = intent.getStringExtra("title") ?: "Guest"
Text(
    text = "Hello $textTitle!",
    modifier = modifier
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:33:18