先说明的我的本意,一个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

解决方案 »

  1.   

    在测试单个activity时,数据可以正常返回,但是不知道怎么处理两个activity的数据,是不是不那样写啊?
      

  2.   

    Bundle b = getIntent().getExtras();
    if(b!=null&&b.containsKey(key)){
    String str=b.getString(key);
    }
      

  3.   

    从你的描述来看,一个activity只能返回一个值,你这一下两个值都获取,两个值都从一个activity都获取了?
      

  4.   


    intent = this.getIntent();
    bundle = intent.getExtras();
    System.out.println("Test"+bundle.containsKey(name1));//返回false
    System.out.println(bundle.getString("name1"));//打印zhaoyun,有结果
    if(bundle!=null&&bundle.containsKey(name1)){

    name1 = bundle.getString("name1");

    if(name1.equals("zhaoyun")){
    insertPicture1.insertDrawable(R.drawable.zhaoyun);
    System.out.println("Yse");
    }
    }但是为什么bundle.containsKey(name1)会返回false?
      

  5.   


    是两个不同的activity各传一个值给同一个activity
      

  6.   

    从第二个Activity返回的时候,intent已经不是从第一个activity返回的intent了。因为你从第二个Activity返回的时候没有传递name1,取不到name1,所以这里会报空指针异常。
    你可以这样做,从第一个Activity返回来以后,把name1保存起来。从第二个Activity返回的时候,把name2取出来和保存的name1比较。
      

  7.   

    用静态变量赋值在传给activity 
      

  8.   

    修改如下:看看是否合适intent = this.getIntent();        
            bundle = intent.getExtras();    
            name1 = bundle.getString("name1");
            name2 = bundle.getString("name2");
            System.out.println(name1);
            if("zhaoyun".equals(name1)){
                insertPicture1.insertDrawable(R.drawable.zhaoyun);
            }else if("machao".equals(name2)){
                insertPicture2.insertDrawable(R.drawable.machao);
            }
      

  9.   

    可以这样用intent 中的 startActivityForResult (); 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
        String result = data.getExtras().getString(“result”));//得到新Activity 关闭后返回的数据 
        } ,具体使用方法你可以去看下开发文档或者搜下例子。比你现在使用的那种方法要简单得多
      

  10.   

    最后还是靠先保存name1然后再取出来name2,提前做好空判断,谢谢大家了