Android Fragment传参时getArguments()返回null的问题
解决Fragment传递Arguments为null的问题
嘿,我一眼就发现问题啦!你在第一个Fragment的代码里犯了个很容易踩的小坑:你明明创建了一个带Bundle参数的inf实例,还特意给它设置了Arguments,但在提交Fragment事务的时候,却重新new了一个全新的Inspecciones_fragment对象——这就导致你之前配置好的参数完全没被用到,第二个Fragment自然拿不到Arguments,只能得到null咯。
修正后的第一个Fragment代码:
Inspecciones_fragment inf = new Inspecciones_fragment(); Bundle bundle = new Bundle(); bundle.putInt("tipo_inspecciones_activity", tag); inf.setArguments(bundle); // 这里要使用已经设置好参数的inf实例,而不是重新new一个 getFragmentManager().beginTransaction() .replace(R.id.flContenedor, inf) .addToBackStack(null) .commit();
为什么之前的代码不行?
你之前的事务里用了new Inspecciones_fragment(),这个新实例和你之前配置参数的inf是完全独立的两个对象,新实例并没有绑定任何Bundle,所以第二个Fragment的getArguments()自然返回null。只要替换成已经设置好参数的inf实例,参数就能正常传递啦。
你的第二个Fragment的代码是没问题的,只要第一个Fragment的传递逻辑正确,就能拿到你想要的tagInspeccion值。
内容的提问来源于stack exchange,提问作者Juan
相关产品推荐
相关产品推荐

