模型类中 Parcelable 接口使用
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 接口使用的更多相关文章
- python---Django中模型类中Meta元对象了解
Django中模型类中Meta元对象了解 1.使用python manage.py shell 进入编辑命令行模式,可以直接进入项目(为我们配置好了环境) python manage.py shell ...
- “全栈2019”Java第八十七章:类中嵌套接口的应用场景(拔高题)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十章:外部类是否能实现本类中的接口?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Java 私有接口 【类中嵌套接口】
1.前言 接口十分常用,能规范实现类的命名 和 实现多个实现类的向上转型成统一类型 ,但是接口的修饰符只能是 public吗? 当然不是,可以是private , 难道是像这样? 显然不可以,已经报错 ...
- 类实现Parcelable接口在Intent中传递
类实现了Parcelable接口就可以在Intent中传递 只要在类的定义中实现Parcelable接口 代码 package entity; import android.os.Parcel; ...
- Android中Parcelable接口的使用
在做开发的过程中,序列化是非常常见的.比如要将对象保存本地磁盘或者在网络上传输等.实现序列化有两种方式,一种是实现Serializable接口,第二种是实现Parcelable. Serializab ...
- Android中Parcelable接口
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- (转)Android中Parcelable接口用法
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- Android开发中Parcelable接口的使用方法
在网上看到很多Android初入门的童鞋都在问Parcelable接口的使用方法,小编参考了相关Android教程,看到里面介绍的序列化方法主要有两种分别是实现Serializable接口和实现Par ...
随机推荐
- CI 模型的使用M与C之间的调用
CI是PHP一个比较轻,并且好用的一个框架 分层也是分的比较清晰的一个 这里先展示MODEL 放在application/models 目录下面user_model.php <?php clas ...
- C# 、winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示
C# .winform 添加皮肤后(IrisSkin2) label设置的颜色 无法显示 解决方法一:设置label的Tag属性值与skinEngine的DisableTag属性值相同即可.默认值是9 ...
- ajax页面数据的传递
在上一篇文章中,简单提到了ajax的工作流程,那么在这里我们就得实战一回了,真正将ajax的用途展现出来,这一整套流程就是在页面上触发一个ajax事件,然后发送请求,紧接着到数据库读取数据,返回值,然 ...
- 【USACO 2.2.4】派对灯
[描述] 在IOI98的节日宴会上,我们有N(10<=N<=100)盏彩色灯,他们分别从1到N被标上号码. 这些灯都连接到四个按钮: 按钮1:当按下此按钮,将改变所有的灯:本来亮着的灯就熄 ...
- 【USACO 1.1.2】贪婪的送礼者
[题目描述] 对于一群(NP个)要互送礼物的朋友,GY要确定每个人送出的钱比收到的多多少. 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人. 然而,在任何一 ...
- PHP 运算符 详解
PHP 算数运算符 运算符 名称 例子 结果 + 加法 $x + $y $x 与 $y 求和 - 减法 $x - $y $x 与 $y 的差数 * 乘法 $x * $y $x 与 $y 的乘积 / 除 ...
- a标签无disabled属性
<a class="button">确认</a> 我们经常会用a标签来设置按钮样式,如果点击它跳转页面,那么没有任何问题. 如果绑定了ajax事件,即点击后 ...
- Linux——搭建PHP开发环境第一步:apache
原文链接:http://www.2cto.com/os/201511/450258.html ##### Apache 编译安装[root@localhost ~]# yum install gcc ...
- 1、vs2012 mvc3项目ObjectContext类找不到的问题
在vs2012下找不到ObjectContext类,取而代之的是DBContext,实体对象的Attach方法,上下文的ObjectStateManager对象都找不到,解决办法: 在设计视图中打开E ...
- 构建高可用web站点学习(三)
分布式的构建 做为网站访问的生命线(数据访问),当然也可以采用分布式的方法来减轻单台服务器的访问压力.之前有讲过Memcached的分布式,但是Memcached服务器互不通信,所以我们也提过redi ...