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

Android Studio中Activity传值问题:第二个参数无法获取

解决Activity间putExtra传值第二个值为null的问题

以下是几个直接的排查和解决方向:

  • 确认Intent对象的一致性
    检查跳转前的代码,是否在调用putExtra("Code", Code)后,又重新创建了Intent实例,导致第二个putExtra没有加到最终启动的Intent上。比如错误写法:

    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    intent.putExtra("Code", Code);
    // 错误:重新实例化Intent,之前的参数被覆盖
    intent = new Intent(FirstActivity.this, SecondActivity.class);
    intent.putExtra("user", "1");
    startActivity(intent);
    

    要保证是同一个Intent对象连续调用putExtra。

  • 检查键名的大小写
    Android的Intent键名是大小写敏感的,确认传递时的"user"和接收时的"user"拼写完全一致,没有大小写错误(比如传递时写"User",接收时写"user")。

  • 排查Activity启动模式的影响
    如果目标Activity设置了singleTask或singleInstance启动模式,系统会复用已存在的Activity实例,此时getIntent()拿到的是第一次启动时的Intent,后续传递的新参数不会自动更新。这种情况需要在目标Activity中重写onNewIntent方法更新Intent:

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent); // 更新为最新的Intent
        userIntent = getIntent().getStringExtra("user");
    }
    
  • 验证传值的正确性
    确认传递"user"时,传入的确实是字符串"1",有没有误写为变量(比如intent.putExtra("user", user),而user变量本身为null)。

  • 打印日志直观排查
    在传递Intent前打印所有参数,接收时也打印Intent的参数集合,确认"user"键是否存在:
    传递前日志代码:

    Log.d("IntentCheck", "传递的参数:" + intent.getExtras());
    

    接收时日志代码:

    Log.d("IntentCheck", "接收的参数:" + getIntent().getExtras());
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:02:34