Activity之间用 intent.putExtra传值,bundle.getString取值为空null

在开发时用到了两个Activity传值,在第二个Activity中取值提示为空,百思不得其解后找到了原因,先来看看最开始出问题的代码:


很正常的点击传值跳转:

            case R.id.cv_matchdetails_sponor:
                Intent intent = new Intent(MatchDetailsActivity.this, SponsorActivity.class);
                intent.putExtra("id", id);
                intent.putExtra("name", name);
                Log.e("iddddddddddd", id + name);
                startActivity(intent);
                break;


第二个activity接收:

if (intent != null) {
            Bundle bundle = intent.getExtras();
            id = bundle.getString("id");
            name = bundle.getString("name");
            Log.e("iddddddddddd",id+name);
            tb_sponsor.setTitle(name);
        } else {
            finish();
        }


但是这时候输出报错了




为什么第二个Activity中id为null呢,原来是在第一个Activity中id的类型是int型,但是传值传的是string类型所以在第二个Activity中获取不到id的值,在第一个Activity中把

intent.putExtra("id", id);
改成

<pre name="code" class="java" style="font-size: 18px;">intent.putExtra("id", Integer.toString(id));
 
这样第二个Activity就可以正常获取到id的值了 

 
 




这个错误是刚入坑Android开发者可能会遇到的错误,当然也包括博主哈哈,希望共同进步,共同学习。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值