java - Parcelable 与 Serialized - 对于没有任何字段的类

标签 java android serialization parcelable

通常我必须将一些没有任何内部数据的接口(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() (,因为该类没有字段)。

如果我选择可序列化,那么我不需要执行任何操作。

对不起我的英语

最佳答案

您好,这是一个很好的链接,读完本文后,您将不再有关于 Parcelable 与 Serialized 的问题。

link

enter image description here

关于java - Parcelable 与 Serialized - 对于没有任何字段的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26501619/

相关文章:

java - 数组和类的空指针异常 - Java

java - LifecycleRegistry 未初始化,在 MVP 架构的 BaseActivity 中

Android Media Player - 获取视频在 SetLooping 中播放的次数

android - ListView 中的 TextView 在滚动时发生变化

c++ - 使用BOOST::serialization将二进制存档写入共享内存

serialization - 什么是序列化?

java - 向 JScrollBar 添加滚动锁定按钮

java - 安卓 : Entries cannot be protected with passwords

java - 我看不到方法在哪里执行 Aeron 低延迟库

c# - 在 C# 中,如何将 List<int> 序列化为 byte[] 以便将其存储在数据库字段中?