[英]Android Fragment argument bundle: getString returning null when key exists
[英]Is Android fragment argument bundle destroyed in any case?
默认的Android Studio生成的代码:
public static Test newInstance(String param1, String param2) {
Test fragment = new Test();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
public Test() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
空检查真的有用吗? 换句话说,在任何情况下都将销毁参数束吗?
编辑:顺便说一句,我也不明白这一点:
@Override
public void onDetach() {
super.onDetach();
mHandler = null;
}
该片段的实例已经(或将要消失),那么将mHandler设置为null意味着什么?
如果此片段在ViewPager中使用,并且您正在使用Fragment“ State” PagerAdapter,则应该是必需的。
因为FragmentStatePagerAdapter使用默认的构造函数在需要时创建片段。 在这种情况下,您将缺少参数。
另外,如果此片段因释放内存而破坏并在需要时恢复,则它将使用默认构造函数再次创建。 同样的故事在这里。
祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.