通常我必须传递给片段(或 activity )一些 interface 实例,而不需要任何内部数据。要将其传递给片段(或活动),我应该将其写为Bundle
(或Intent
)Parcelable
或{ {1}}。我从这两个选项中选择了什么?
示例:
Serializable
如果我选择public class SomeFragment {
public static interface Helper {
View prepareView(SomeFragment fragment, LayoutInflater inflater);
// etc.
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return extractHelperFromArguments().prepareView(this, inflater);
}
public static SomeFragment newInstance(Helper helper) {
SomeFragment fragment = new SomeFragment();
//
// Bundle args = new Bundle();
//
// args.putParcelable(KEY_HELPER, (Parcelable) helper);
// or
// args.putSerializable(KEY_HELPER, (Serializable) helper);
// ?
//
// fragment.setArguments(args)
return fragment;
}
}
,那么我必须声明静态字段Parcelable
并清空方法CREATOR
和describeContents()
(空,因为该类没有没有田地。。
如果我选择writeToParcel()
,那么我不需要做任何事情。
抱歉我的英文