您的位置:首页 > 移动开发 > Android开发

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

2016-07-26 16:10 411 查看
在开发时用到了两个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开发者可能会遇到的错误,当然也包括博主哈哈,希望共同进步,共同学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息