• Android为TV端助力 很详细的序列化过程Parcelable


    直接上代码:注释都写的很清楚了。

    public class Entry implements Parcelable{
    public int userID;
    public String username;
    public boolean isMale;
    public Book book;//序列化对象可以嵌套序列化对象,前提是2个类的对象都被序列号过
    //几乎所有情况下都返回0,可以不管
    @Override
    public int describeContents() {
    return 0;
    }
    //序列化对象,将对象写到序列号数据结构中
    //flags:大多数情况为0
    @Override
    public void writeToParcel(Parcel out, int flags) {
    out.writeInt(userID);
    out.writeString(username);
    out.writeInt(isMale ? 1:0);
    out.writeParcelable(book, 0);
    // out.writeList(list);也可以序列号list和Map,前提是list和Map里面的数据都是可序列号的
    // out.writeMap(Map);
    }
    public Entry(int userID,String username,boolean isMale) {
    this.userID = userID;
    this.username = username;
    this.isMale = isMale;
    }
    //反序列化
    public static final Parcelable.Creator<Entry> CREATOR = new Creator<Entry>() {
    //创建指定长度的原始对象数组
    @Override
    public Entry[] newArray(int size) {
    // TODO Auto-generated method stub
    return new Entry[size];
    }
    //从序列号过后的对象中创建原始对象
    @Override
    public Entry createFromParcel(Parcel source) {
    // TODO Auto-generated method stub
    return new Entry(source);
    }
    };
    //从序列号后的对象中创建原始对象
    private Entry(Parcel in){
    userID = in.readInt();
    username = in.readString();
    isMale = in.readInt() == 1;
    in.readParcelable(Thread.currentThread().getContextClassLoader());
    }

    }

  • 相关阅读:
    autolayout先进的自动布局工具箱
    iOS7自定义back按钮和pop交互手势
    iOS7开发技巧
    UICollectionView专题
    关于AutoLayout(自动布局)那些事儿
    代码统计利器--CLOC
    vue之指令篇 ps简单的对比angular
    从无到有之webpack+vuerouter的简单例子以及各个属性解释
    关于requestanimationframe
    vim常用指令
  • 原文地址:https://www.cnblogs.com/xiaoxiaing/p/5809271.html
Copyright © 2020-2023  润新知