我写了一个自定义静态方法来创建我的片段。 Fragment是 android.support.v4.app.Fragment 类的子类。
创建我的片段的方法如下。
public static AddItemFragment newInstance(UUID listId, UUID itemId){
AddItemFragment fragment=new AddItemFragment();
Bundle bundle=new Bundle();
bundle.putSerializable(EXTRA_DATA_LIST_ID,listId);
bundle.putSerializable(EXTRA_DATA_ITEM_ID, itemId);
fragment.setArguments(bundle);
return fragment;
}
在我的onCreate方法中,我试图从bundle中读取数据。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mListId = (getArguments().getSerializable(EXTRA_DATA_LIST_ID) == null ? null : (UUID) getArguments().getSerializable(EXTRA_DATA_LIST_ID));
mItemId = (getArguments().getSerializable(EXTRA_DATA_ITEM_ID) == null ? null : (UUID) getArguments().getSerializable(EXTRA_DATA_ITEM_ID));
}
问题是 getArguments()方法永远不会返回bundle。它总是返回 NULL 。我不明白为什么。 savedInstanceState也是NULL。
答案 0 :(得分:0)
愚蠢的我在片段中覆盖了活动的 savedInstanceState 捆绑包中的捆绑设置,此时捆绑 NULL 。
... DUH