两个Activity跳转到同一个Activity并传值
当两个界面(界面C)都要想同一个界面跳转(不是同时),有一个Activity(界面A)需要携带数据的跳转,
Intent intent=new Intent(AActivity.this,CActivity.class);
Bundle bundle=new Bundle();
bundle.putString("from","A界面");
bundle.putInt("position",8);
intent.putExtras(bundle);
startActivity(intent);
而另一个Activity(界面B)的跳转并不需要传什么值,只是普通的跳转。
Intent intent=new Intent(AActivity.this,CActivity.class);
startActivity(intent);
那么C界面的onCreate()方法中就要对Intent中的值作出判断:
Intent Intent=getIntent();
String str = intent.getExtras().getString("from");
if("A界面".equals(str)){
//操作。。。。。
}
执行的结果是。。。。。崩了!!!
提示:java.lang.nullpointerexception
异常指示行:String str = intent.getExtras().getString("from");
debug以后发现saveInstanceState==null;
然后就没有然后了。。。
后来才发现在B界面跳转到C界面的时候,intent.getExtras根本不存在,因为B界面中intent中没有传值;
所以解决办法就是: 1、在B界面中intent中也要传数值,可以是intent.putStringExtra("from","A界面");
2、在B界面中intent中传值,可以随便传值,但是不要传Key为“from”的,然后在C界面中的判断条件
就是if(intent.getExtras().containsKey("from")),这样依然可以区分跳转,也不会报错。