package com.exmyth.ui.model;

 import java.util.ArrayList;
import java.util.List; public class ProductItem{
//-------------------------以下字段在扫描中需要额外用到-------------------------
protected String productId = ""; //产品id,扫描标签时候会返回该字段
protected String brandName = "";
//-------------------------以上字段在扫描中需要额外用到------------------------- protected String productName = "";
protected String standard = "";
protected String featureDesc = "";
protected String[] productUrls;
protected List<Entry> params = new ArrayList<Entry>(); public ProductItem() {
super();
} public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
} public String getProductName() {
return productName;
} public void setProductName(String productName) {
this.productName = productName;
} public String getStandard() {
return standard;
} public void setStandard(String standard) {
this.standard = standard;
} public String getFeatureDesc() {
return featureDesc;
} public void setFeatureDesc(String featureDesc) {
this.featureDesc = featureDesc;
} public String[] getProductUrls() {
return productUrls;
} public void setProductUrls(String[] productUrls) {
this.productUrls = productUrls;
} public List<Entry> getParams() {
return params;
} public void setParams(List<Entry> params) {
this.params = params;
}
}
 package com.exmyth.ui.model;

 import java.util.ArrayList;
import java.util.List; import android.os.Parcel;
import android.os.Parcelable; public class GoodsItem extends ProductItem implements Parcelable{
private String bindId;
private String produceDate = ""; public GoodsItem() {
super();
} public String getBindId() {
return bindId;
} public void setBindId(String bindId) {
this.bindId = bindId;
} public String getProduceDate() {
return produceDate;
} public void setProduceDate(String produceDate) {
this.produceDate = produceDate;
} @Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
} @Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeString(bindId);
dest.writeString(productId);
dest.writeString(standard);
dest.writeString(productName);
dest.writeString(featureDesc);
dest.writeString(brandName);
dest.writeString(produceDate); if(null == productUrls){
dest.writeInt(0);
}else{
dest.writeInt(productUrls.length);
dest.writeStringArray(productUrls);
}
if(null == params || 0 == params.size()){
dest.writeInt(0);
}
else{
dest.writeInt(params.size());
// dest.writeList(params);
dest.writeTypedList(params);
}
} public static final Parcelable.Creator<GoodsItem> CREATOR = new Creator<GoodsItem>() { @Override
public GoodsItem createFromParcel(Parcel source) {
GoodsItem goodsItem = new GoodsItem();
goodsItem.bindId = source.readString();
goodsItem.productId = source.readString();
goodsItem.standard = source.readString();
goodsItem.productName = source.readString();
goodsItem.featureDesc = source.readString();
goodsItem.brandName = source.readString();
goodsItem.produceDate = source.readString(); int length = source.readInt();
String[] productUrls = new String[length];
if(length > 0){
source.readStringArray(productUrls);
}
goodsItem.productUrls = productUrls; int size = source.readInt();
List<Entry> params = new ArrayList<Entry>(size);
if(size > 0){
// source.readList(params, GoodsItem.class.getClassLoader());
source.readTypedList(params, Entry.CREATOR);
}
goodsItem.params = params; return goodsItem;
} @Override
public GoodsItem[] newArray(int size) {
// TODO Auto-generated method stub
return new GoodsItem[size];
}
};
}
 package com.exmyth.ui.model;

 import android.os.Parcel;
import android.os.Parcelable; /*
featureDesc: 产品特色描述
productName: 产品名称
standard:产品规格
type:
name:参数名称
value:参数值
showOrder:显示顺序
*/
public class Entry implements Parcelable{ public static final String PARAM_TYPE_COMBO = "1";
public static final String PARAM_TYPE_TEXT = "2";
public static final String PARAM_TYPE_CONTACT = "3";
public static final String PARAM_TYPE_HYPERLINK = "4";
private String type; // 参数类型 1-下拉 2-文本 3-联系电话 4-链接地址
private String name = ""; // 参数名称
private String[] value; // 参数值
private String showOrder = "0"; // 显示顺序
// public ViewType viewType = ViewType.TEXT; // 控件类型
private int index = 0; // 文本,电话,链接地址的类型为0;控件类型为combo的,默认第一项
private boolean isShow = false; // public enum ViewType {
// COMBO("1"), TEXT("2"), CONTACT("3"), HYPERLINK("4");
//
// String value;
//
// private ViewType(String value) {
// this.value = value;
// }
// } public Entry() {
super();
} public Entry(String type, String name, String[] value, String showOrder) {
this(type, name, value, showOrder, 0);
} public Entry(String type, String name, String[] value, String showOrder,
int index) {
super();
this.type = type;
this.name = name;
this.value = value;
this.showOrder = showOrder;
this.index = index;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String[] getValue() {
return value;
} public void setValue(String[] value) {
this.value = value;
} public String getShowOrder() {
return showOrder;
} public void setShowOrder(String showOrder) {
this.showOrder = showOrder;
} public int getIndex() {
return index;
} public void setIndex(int index) {
this.index = index;
} public boolean isShow() {
return isShow;
} public void setShow(boolean isShow) {
this.isShow = isShow;
} @Override
public String toString() {
return "Entry [type=" + type + ", name=" + name + ", value="
+ (null == value ? "" : value[index]) + ", index=" + index + "]";
} @Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
} @Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(type);
dest.writeString(name); if(null == value){
dest.writeInt(0);
}else{
dest.writeInt(value.length);
dest.writeStringArray(value);
} dest.writeString(showOrder);
dest.writeInt(index);
} public static final Parcelable.Creator<Entry> CREATOR = new Creator<Entry>() {
@Override
public Entry[] newArray(int size) {
return new Entry[size];
} //将Parcel对象反序列化为UserInfo
@Override
public Entry createFromParcel(Parcel source) {
Entry entry = new Entry();
entry.type = source.readString();
entry.name = source.readString(); int length = source.readInt();
String[] value = new String[length];
if(length > 0){
source.readStringArray(value);
}
entry.value = value; entry.showOrder = source.readString();
entry.index = source.readInt();
return entry;
}
};
}

模型类中 Parcelable 接口使用的更多相关文章

  1. python---Django中模型类中Meta元对象了解

    Django中模型类中Meta元对象了解 1.使用python manage.py shell 进入编辑命令行模式,可以直接进入项目(为我们配置好了环境) python manage.py shell ...

  2. “全栈2019”Java第八十七章:类中嵌套接口的应用场景(拔高题)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. “全栈2019”Java第八十章:外部类是否能实现本类中的接口?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. Java 私有接口 【类中嵌套接口】

    1.前言 接口十分常用,能规范实现类的命名 和 实现多个实现类的向上转型成统一类型 ,但是接口的修饰符只能是 public吗? 当然不是,可以是private , 难道是像这样? 显然不可以,已经报错 ...

  5. 类实现Parcelable接口在Intent中传递

    类实现了Parcelable接口就可以在Intent中传递   只要在类的定义中实现Parcelable接口 代码 package entity; import android.os.Parcel; ...

  6. Android中Parcelable接口的使用

    在做开发的过程中,序列化是非常常见的.比如要将对象保存本地磁盘或者在网络上传输等.实现序列化有两种方式,一种是实现Serializable接口,第二种是实现Parcelable. Serializab ...

  7. Android中Parcelable接口

    1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...

  8. (转)Android中Parcelable接口用法

    1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...

  9. Android开发中Parcelable接口的使用方法

    在网上看到很多Android初入门的童鞋都在问Parcelable接口的使用方法,小编参考了相关Android教程,看到里面介绍的序列化方法主要有两种分别是实现Serializable接口和实现Par ...

随机推荐

  1. utils object doesn,t exists中毒后,就删除了.JS文件后台就出现了前面的英文。请问怎么解决

    明显是你删了js丢失了函数了...从备份里还原一份.js出来放进去,前台也不能删,如果遇到名字冲突,修改一下名字即可

  2. dbms_job dbms_scheduler简单比较

    ---------------------------陈旧的-------------------------------------/*--------------------- 创建job --- ...

  3. java_log_01

    logback&slf4j(本文中的版本为logback1.1.7.slf4j1.7.21),参照 原作者:Ceki Gülcü.Sébastien Pennec中文版译者:陈华联系方式:cl ...

  4. html form <label>标签基础语法结构与使用案例教程(转载)

    在表单布局中会遇到label标签的使用,label没有任何样式效果,有触发对应表单控件功能.比如我们点击单选按钮或多选框前文字对应选项就能被选中,这个就是对文字加了<label>标签实现. ...

  5. java获取天气信息

    通过天气信息接口获取天气信息,首先要给项目导入程序所需要的包,具体需要如下几个包: json-lib-2.4.jar ezmorph-1.0.6.jar commons-beanutils-1.8.3 ...

  6. Github 上利用github pages 部署站点

    一:起始 准备项目,如果你在github上已有项目,则无需新建,如果你要新起一个项目,则需先在github上创建一个项目 本文以已创建好的 github/TestGitPage  为例. 二:设置gi ...

  7. 简单的猜数字(JAVA版)

    按书上的样例来操作的. 不过,书上提到的BUG,我没有在看下一章时就解决了哈.. 从网上查找的删除数组元素的方法. 其实,将数据结构更改为ARRAYLIST,可能更简单.:) GameHelper.j ...

  8. Qt_chartdirector图形开发

    ChartDirector 是一款商业的图表库,有多种语言的版本,使用它做的图表非常的精 细漂亮,提供免费版本,但会出现logo信息.网上有很多关于它的破解方法. 一.产品优点 高效快捷 采用多线程结 ...

  9. Android 4.4 上实现透明导航栏和状态栏 Translucent system bar

    Translucent system UI styling To get the most impact out of your content, you can now use new window ...

  10. 网页a标签:导航制作 怎么让鼠标经过A标签的时候显示块状背景?

    文章出处:http://dongguan.seosrx.net/website/6.html