一个activity要接收两个activity传来的数据,总是报空指针的错,求帮助!
先说明的我的本意,一个activity页面上,两个按钮b1,b2,点击b1进入activity1,得到数据name1,返回到activity,此时activity页面上显示出了图片,然后点击b2进入activity2,选中得到数据name2,同样返回到activity的页面,因为我要根据这两个返回来的数据写一个对比算法,但是现在一个intent取两个数据报空指针的错误,我研究半天了,不知道怎么解决,或者有没有其他的思路,至为感谢!
下面是activity里的intent主要实现段:
intent = this.getIntent();
bundle = intent.getExtras();
name1 = bundle.getString("name1");
name2 = bundle.getString("name2");
System.out.println(name1);
if(name1.equals("zhaoyun")){
insertPicture1.insertDrawable(R.drawable.zhaoyun);
}
if(name2.equals("machao")){
insertPicture2.insertDrawable(R.drawable.machao);
}
非常感谢!!! android 指针 图片 java
[解决办法]
Bundle b = getIntent().getExtras();
if(b!=null&&b.containsKey(key)){
String str=b.getString(key);
}
[解决办法]
做空判断,不然两个总有一个为空
[解决办法]
从第二个Activity返回的时候,intent已经不是从第一个activity返回的intent了。因为你从第二个Activity返回的时候没有传递name1,取不到name1,所以这里会报空指针异常。
你可以这样做,从第一个Activity返回来以后,把name1保存起来。从第二个Activity返回的时候,把name2取出来和保存的name1比较。
[解决办法]
分别判空再说吧
[解决办法]
可以这样用intent 中的 startActivityForResult ();
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String result = data.getExtras().getString(“result”));//得到新Activity 关闭后返回的数据
} ,具体使用方法你可以去看下开发文档或者搜下例子。比你现在使用的那种方法要简单得多