通常我必须将一些没有任何内部数据的接口(interface)实例传递给 fragment (或 Activity )。要将其传递给 fragment (或 Activity ),我应该将其写入Bundle
(或Intent
)作为可打包
或可序列化
。我从这两个选项中选择什么?
示例:
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()
(空,因为该类没有字段)。
如果我选择可序列化
,那么我不需要执行任何操作。
对不起我的英语
最佳答案
关于java - Parcelable 与 Serialized - 对于没有任何字段的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501619/