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
相关产品推荐
相关产品推荐

