为了账号安全,请及时绑定邮箱和手机立即绑定

activity向fragment传值时bundlle的getString方法有空指针异常;

activity向fragment传值时bundlle的getString方法有空指针异常;

蜡笔小新的Qe 2018-05-03 17:47:37
bundle对象可以传过来但是getString方法有空指针异常activity代码如下:FreList fl=new FreList();//FreList继承了fragment  Bundle bundle=new Bundle();  bundle.putString("a","ak47");  fl.setArguments(bundle);  manager=getFragmentManager();  transaction=manager.beginTransaction();  transaction.replace(R.id.content_layout,fl);  transaction.commit();fragment代码如下:Bundle bundle=getArguments();//1 if(bundle!=null){//2     System.out.println("哼!bundle传过来了");//3 }//4 String str=bundle.get("a").toString();//5如果将fragment中第五行注释掉就会打印“哼!bundle传过来了”,如果不把第五行注释掉就会报错:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bignerdranch.android.myqq/com.bignerdranch.android.myqq.jieMianActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.os.Bundle.get(java.lang.String)' on a null object reference以及  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.os.Bundle.get(java.lang.String)' on a null object reference恳请各路大神拯救一下我这个萌新!!
查看完整描述

1 回答

已采纳
?
萨达哈鲁

TA贡献26条经验 获得超19个赞

你的

if(bundle!=null){//2
    System.out.println("哼!bundle传过来了");//3
}//4

这个if既然判断bundle是不是空,那就应该把使用bundle的地方放到里面呀

if(bundle!=null){//2
    System.out.println("哼!bundle传过来了");//3
    String str=bundle.get("a").toString();//5
}//4


查看完整回答
反对 回复 2018-05-03
  • 蜡笔小新的Qe
    蜡笔小新的Qe
    谢谢啊!真的就解决了.... 可是 能麻烦你给我讲一下为什么吗? 我觉得 放在里头和放在外头 没什么区别啊
  • 蜡笔小新的Qe
    蜡笔小新的Qe
    你好,今天我把if(bundle!=null){ } 去掉之后又报了空指针异常。你方便给我解释一下这到底是为什么吗? Thanks♪(・ω・)ノ
  • 萨达哈鲁
    萨达哈鲁
    因为你的if判断是判断bundle这个对象是否为空,如果不为空才会走里面的逻辑,如果为空就不走,所以,你调用bundle对象里面的方法的时候,bundle对象如果是空的话,是会有空指针异常的。
点击展开后面1
  • 1 回答
  • 0 关注
  • 1296 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信