两个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")),这样依然可以区分跳转,也不会报错。

posted @ 2015-07-27 15:53  天空windy  阅读(1699)  评论(0编辑  收藏  举报