[英]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.