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

Android中putExtra传值后getStringExtra返回null的问题

问题解决:putExtra传递数据后getStringExtra返回null

问题原因

MainActivity中错误创建了空的新Intent,而非获取启动当前Activity时携带数据的那个Intent,导致getStringExtra()返回null。

修正后的MainActivity代码

替换原Intent初始化代码,改用getIntent()获取系统传递的Intent:

val intent = getIntent()
val word = intent.getStringExtra("Word")
Log.d(TAG, "MainActivity: $word")
word?.let {
    viewModel.insert(Word(word))
    Log.d(TAG, "onCreate: Inserted $word")
}

若使用AndroidX的Activity,也可直接利用onCreate方法的Intent参数:

override fun onCreate(savedInstanceState: Bundle?, intent: Intent?) {
    super.onCreate(savedInstanceState)
    val word = intent?.getStringExtra("Word")
    Log.d(TAG, "MainActivity: $word")
    word?.let {
        viewModel.insert(Word(word))
        Log.d(TAG, "onCreate: Inserted $word")
    }
}

说明

你的SecondActivity代码逻辑正确,已成功创建指向MainActivity的Intent并附加EditText文本数据。但原MainActivity中val intent = Intent()会生成全新的空Intent,自然无法读取传递的数据。必须通过getIntent()或onCreate的Intent参数,才能拿到启动当前Activity时携带的目标Intent对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 21:25:23