Android:greenDao与Parcelable使用总结

greenDao与Parcelable都可以实现对Object数据的存储。

1.     greenDao

     greenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库的表单中的ORM解决方案,通过使用一 个简单的面向对象API,开发者可以对Java对象进行存储、更新、删除和查询。

2.     Parcelable

      Parcelable是Android中用于对Object数据进行序列化和反序列化的接口。

注意:greendao自动生成的info可以继承Parcelable接口,实现序列化和反序列数据存储。

  • 例:

public class ContractDeatilInfo implements Parcelable{

    /** Not-null value. */
    private String id;
    private String name;
    private String party_a;
    private String party_b;

    public ContractDeatilInfo() {
    }

    public ContractDeatilInfo(String id) {
        this.id = id;
    }

    public ContractDeatilInfo(String id, String name, String party_a, String party_b, String sign_date, String value, String remarks) {
        this.id = id;
        this.name = name;
        this.party_a = party_a;
        this.party_b = party_b;
    }

    /** Not-null value. */
    public String getId() {
        return id;
    }

    /** Not-null value; ensure this value is available before it is saved to the database. */
    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getParty_a() {
        return party_a;
    }

    public void setParty_a(String party_a) {
        this.party_a = party_a;
    }

    public String getParty_b() {
        return party_b;
    }

    public void setParty_b(String party_b) {
        this.party_b = party_b;
    }

    
 // 以上是greendao自动生成的info,以下是实现Parcelable接口的内容
 
	@Override
	public int describeContents() {
		return 0;
	}

	//实现序列化,j
	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(id);
		dest.writeString(name);
		dest.writeString(party_a);
		dest.writeString(party_b);
	}

	//实现反序列化,从Parcel解析出来
	public static final Parcelable.Creator<ContractDeatilInfo> CREATOR = new Creator<ContractDeatilInfo>() {

		@Override
		public ContractDeatilInfo[] newArray(int size) {
			return new ContractDeatilInfo[size];
		}

		@Override
		public ContractDeatilInfo createFromParcel(Parcel source) {
			ContractDeatilInfo info = new ContractDeatilInfo();
			info.id = source.readString();
			info.name = source.readString();
			info.party_a = source.readString();
			info.party_b = source.readString();

			return info;
		}
	};
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。