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

Kotlin开发:Intent传字符串后获取到null值的问题求助

问题修正:Intent传递字符串获取为null的解决办法

错误原因

你在MainActivity中通过putExtra("EXTRA_NAME", name)传递的是单个字符串,但在SecondActivity中错误使用了getStringArrayExtra("EXTRA_NAME")方法——这个方法专门用于读取字符串数组类型的Intent Extra,无法匹配你传递的单个字符串,因此返回null。

修正后的SecondActivity代码

将获取Extra的方法替换为getStringExtra,这才是读取单个字符串类型Extra的正确方法:

class SecondActivity:AppCompatActivity() {
    private lateinit var binding: ActivitySecondBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding= ActivitySecondBinding.inflate(layoutInflater)
        setContentView(binding.root)

        // 替换为getStringExtra读取单个字符串,添加默认值避免空字符串问题
        val name=intent.getStringExtra("EXTRA_NAME") ?: "未获取到名称"
        val toPrint="$name hahahaha"

        binding.tvNameIntent.text=toPrint
    }
}

额外优化建议

为了避免因字符串拼写错误导致的类似问题,建议用常量定义Intent Extra的键,示例如下:

// 可在MainActivity或单独的常量类中定义统一的Extra键
const val EXTRA_NAME = "EXTRA_NAME"

// MainActivity中传递数据
it.putExtra(EXTRA_NAME, name)

// SecondActivity中获取数据
val name=intent.getStringExtra(EXTRA_NAME) ?: "未获取到名称"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:15:52