• 模型类中 Parcelable 接口使用


     1 package com.exmyth.ui.model;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 public class ProductItem{
     7     //-------------------------以下字段在扫描中需要额外用到-------------------------
     8     protected String productId = "";    //产品id,扫描标签时候会返回该字段
     9     protected String brandName = "";
    10     //-------------------------以上字段在扫描中需要额外用到-------------------------
    11     
    12     protected String productName = "";
    13     protected String standard = "";
    14     protected String featureDesc = "";
    15     protected String[] productUrls;
    16     protected List<Entry> params = new ArrayList<Entry>();
    17 
    18     public ProductItem() {
    19         super();
    20     }
    21 
    22     public String getProductId() {
    23         return productId;
    24     }
    25     public void setProductId(String productId) {
    26         this.productId = productId;
    27     }
    28     public String getBrandName() {
    29         return brandName;
    30     }
    31     public void setBrandName(String brandName) {
    32         this.brandName = brandName;
    33     }
    34 
    35     
    36     
    37     public String getProductName() {
    38         return productName;
    39     }
    40 
    41     public void setProductName(String productName) {
    42         this.productName = productName;
    43     }
    44 
    45     public String getStandard() {
    46         return standard;
    47     }
    48 
    49     public void setStandard(String standard) {
    50         this.standard = standard;
    51     }
    52 
    53     public String getFeatureDesc() {
    54         return featureDesc;
    55     }
    56 
    57     public void setFeatureDesc(String featureDesc) {
    58         this.featureDesc = featureDesc;
    59     }
    60 
    61     public String[] getProductUrls() {
    62         return productUrls;
    63     }
    64 
    65     public void setProductUrls(String[] productUrls) {
    66         this.productUrls = productUrls;
    67     }
    68 
    69     public List<Entry> getParams() {
    70         return params;
    71     }
    72 
    73     public void setParams(List<Entry> params) {
    74         this.params = params;
    75     }
    76 }
      1 package com.exmyth.ui.model;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 
      6 import android.os.Parcel;
      7 import android.os.Parcelable;
      8 
      9 public class GoodsItem extends ProductItem implements Parcelable{
     10     private String bindId;
     11     private String produceDate = "";
     12 
     13     public GoodsItem() {
     14         super();
     15     }
     16 
     17     public String getBindId() {
     18         return bindId;
     19     }
     20 
     21     public void setBindId(String bindId) {
     22         this.bindId = bindId;
     23     }
     24     
     25     public String getProduceDate() {
     26         return produceDate;
     27     }
     28 
     29     public void setProduceDate(String produceDate) {
     30         this.produceDate = produceDate;
     31     }
     32 
     33     @Override
     34     public int describeContents() {
     35         // TODO Auto-generated method stub
     36         return 0;
     37     }
     38 
     39     @Override
     40     public void writeToParcel(Parcel dest, int flags) {
     41         // TODO Auto-generated method stub
     42         dest.writeString(bindId);
     43         dest.writeString(productId);
     44         dest.writeString(standard);
     45         dest.writeString(productName);
     46         dest.writeString(featureDesc);
     47         dest.writeString(brandName);
     48         dest.writeString(produceDate);
     49         
     50         if(null == productUrls){
     51             dest.writeInt(0);
     52         }else{
     53             dest.writeInt(productUrls.length);
     54             dest.writeStringArray(productUrls);
     55         }
     56         if(null == params || 0 == params.size()){
     57             dest.writeInt(0);
     58         }
     59         else{
     60             dest.writeInt(params.size());
     61 //            dest.writeList(params);
     62             dest.writeTypedList(params);
     63         }
     64     }
     65 
     66     public static final Parcelable.Creator<GoodsItem> CREATOR = new Creator<GoodsItem>() {
     67 
     68         @Override
     69         public GoodsItem createFromParcel(Parcel source) {
     70             GoodsItem goodsItem = new GoodsItem();
     71             goodsItem.bindId = source.readString();
     72             goodsItem.productId = source.readString();
     73             goodsItem.standard = source.readString();
     74             goodsItem.productName = source.readString();
     75             goodsItem.featureDesc = source.readString();
     76             goodsItem.brandName = source.readString();
     77             goodsItem.produceDate = source.readString();
     78             
     79             int length = source.readInt();
     80             String[] productUrls = new String[length];
     81             if(length > 0){
     82                 source.readStringArray(productUrls);
     83             }
     84             goodsItem.productUrls = productUrls;
     85             
     86             int size = source.readInt();
     87             List<Entry> params = new ArrayList<Entry>(size);
     88             if(size > 0){
     89 //                source.readList(params, GoodsItem.class.getClassLoader());
     90                 source.readTypedList(params, Entry.CREATOR);
     91             }
     92             goodsItem.params = params;
     93             
     94             return goodsItem;
     95         }
     96 
     97         @Override
     98         public GoodsItem[] newArray(int size) {
     99             // TODO Auto-generated method stub
    100             return new GoodsItem[size];
    101         }
    102     };
    103 }
      1 package com.exmyth.ui.model;
      2 
      3 import android.os.Parcel;
      4 import android.os.Parcelable;
      5 
      6 
      7 /*
      8  featureDesc: 产品特色描述
      9  productName: 产品名称
     10  standard:产品规格
     11  type:
     12  name:参数名称
     13  value:参数值
     14  showOrder:显示顺序
     15  */
     16 public class Entry implements Parcelable{
     17     
     18     public static final String PARAM_TYPE_COMBO = "1";
     19     public static final String PARAM_TYPE_TEXT = "2";
     20     public static final String PARAM_TYPE_CONTACT = "3";
     21     public static final String PARAM_TYPE_HYPERLINK = "4";
     22     private String type; // 参数类型 1-下拉 2-文本 3-联系电话 4-链接地址
     23     private String name = ""; // 参数名称
     24     private String[] value; // 参数值
     25     private String showOrder = "0"; // 显示顺序
     26 //    public ViewType viewType = ViewType.TEXT; // 控件类型
     27     private int index = 0; // 文本,电话,链接地址的类型为0;控件类型为combo的,默认第一项
     28     private boolean isShow = false;
     29 
     30 //    public enum ViewType {
     31 //        COMBO("1"), TEXT("2"), CONTACT("3"), HYPERLINK("4");
     32 //
     33 //        String value;
     34 //
     35 //        private ViewType(String value) {
     36 //            this.value = value;
     37 //        }
     38 //    }
     39 
     40     public Entry() {
     41         super();
     42     }
     43 
     44     public Entry(String type, String name, String[] value, String showOrder) {
     45         this(type, name, value, showOrder, 0);
     46     }
     47 
     48     public Entry(String type, String name, String[] value, String showOrder,
     49             int index) {
     50         super();
     51         this.type = type;
     52         this.name = name;
     53         this.value = value;
     54         this.showOrder = showOrder;
     55         this.index = index;
     56     }
     57 
     58     public String getType() {
     59         return type;
     60     }
     61 
     62     public void setType(String type) {
     63         this.type = type;
     64     }
     65 
     66     public String getName() {
     67         return name;
     68     }
     69 
     70     public void setName(String name) {
     71         this.name = name;
     72     }
     73 
     74     public String[] getValue() {
     75         return value;
     76     }
     77 
     78     public void setValue(String[] value) {
     79         this.value = value;
     80     }
     81 
     82     public String getShowOrder() {
     83         return showOrder;
     84     }
     85 
     86     public void setShowOrder(String showOrder) {
     87         this.showOrder = showOrder;
     88     }
     89 
     90     public int getIndex() {
     91         return index;
     92     }
     93 
     94     public void setIndex(int index) {
     95         this.index = index;
     96     }
     97     
     98     public boolean isShow() {
     99         return isShow;
    100     }
    101 
    102     public void setShow(boolean isShow) {
    103         this.isShow = isShow;
    104     }
    105 
    106     @Override
    107     public String toString() {
    108         return "Entry [type=" + type + ", name=" + name + ", value="
    109                 + (null == value ? "" : value[index]) + ", index=" + index + "]";
    110     }
    111 
    112     @Override
    113     public int describeContents() {
    114         // TODO Auto-generated method stub
    115         return 0;
    116     }
    117 
    118     @Override
    119     public void writeToParcel(Parcel dest, int flags) {
    120         dest.writeString(type);  
    121         dest.writeString(name);
    122         
    123         if(null == value){
    124             dest.writeInt(0);
    125         }else{
    126             dest.writeInt(value.length);
    127             dest.writeStringArray(value);
    128         }
    129         
    130         dest.writeString(showOrder);
    131         dest.writeInt(index);
    132     }
    133     
    134     public static final Parcelable.Creator<Entry> CREATOR = new Creator<Entry>() {     
    135         @Override    
    136         public Entry[] newArray(int size) {     
    137             return new Entry[size];     
    138         }     
    139              
    140         //将Parcel对象反序列化为UserInfo     
    141         @Override    
    142         public Entry createFromParcel(Parcel source) {
    143             Entry entry = new Entry();
    144             entry.type = source.readString();  
    145             entry.name = source.readString();
    146             
    147             
    148             int length = source.readInt();
    149             String[] value = new String[length];
    150             if(length > 0){
    151                 source.readStringArray(value);
    152             }
    153             entry.value = value;
    154             
    155             entry.showOrder = source.readString();  
    156             entry.index = source.readInt();  
    157             return entry;     
    158         }     
    159     };   
    160 }
  • 相关阅读:
    宏开发:excel中添加拼接行
    windows消息简单应用实例
    C#用到windows 消息列表Message类MSG的id代号
    在C#中winform程序中应用nlog日志工具
    sql语句中生成0-10随机数
    div+css布局使用inline-block
    linux在nginx中服务器集群用到session的注意事项
    linux 安装php时不安装mysql客户端或者服务端
    centos 配置apache注意事项
    Apache服务器不能启动查看启动错误信息
  • 原文地址:https://www.cnblogs.com/exmyth/p/4537081.html
Copyright © 2020-2023  润新知