在android中创建包含对象数组的Parcelable

public class Bill implements Parcelable{
	// 订单号
	public int orderid;
	// 原系统id
	public int oldid;
	// 订单地址
	public String address;
	// 订单备注
	public String ext;
	// 订单电话
	public String mobile;
	// 订单用户姓名
	public String name;
	// 已支付金额
	public double payed;
	// 订单时间
	public String date;
	// 订单总价
	public double total;
	// 所需付款
	public double pay;
	// 店铺名称
	public String shopname;
	// 店铺电话
	public String shopphone;
	// 订单状态,0待确定,1已确定
	public int state;
	// 接受此订单的员工
	public int staff;
	//是否送达,0未送达,1送达
	public int type;
	// 货物
	public Goods goods[];

	public Bill() {
		// TODO Auto-generated constructor stub
	}
	 protected Bill(Parcel in) {
	        orderid = in.readInt();
	        oldid = in.readInt();
	        address = in.readString();
	        ext = in.readString();
	        mobile = in.readString();
	        name = in.readString();
	        payed = in.readDouble();
	        date = in.readString();
	        total = in.readDouble();
	        pay = in.readDouble();
	        shopname = in.readString();
	        shopphone = in.readString();
	        state = in.readInt();
	        staff = in.readInt();
	        type = in.readInt();

	        Parcelable[] parcelables = in.readParcelableArray(Goods.class.getClassLoader());
	        if (parcelables != null) {
				goods = Arrays.copyOf(parcelables, parcelables.length, Goods[].class);
			}
	    }

	    @Override
	    public int describeContents() {
	        return 0;
	    }

	    @Override
	    public void writeToParcel(Parcel dest, int flags) {
	        dest.writeInt(orderid);
	        dest.writeInt(oldid);
	        dest.writeString(address);
	        dest.writeString(ext);
	        dest.writeString(mobile);
	        dest.writeString(name);
	        dest.writeDouble(payed);
	        dest.writeString(date);
	        dest.writeDouble(total);
	        dest.writeDouble(pay);
	        dest.writeString(shopname);
	        dest.writeString(shopphone);
	        dest.writeInt(state);
	        dest.writeInt(staff);
	        dest.writeInt(type);
	        dest.writeParcelableArray(goods, flags);
	    }

	    @SuppressWarnings("unused")
	    public static final Parcelable.Creator<Bill> CREATOR = new Parcelable.Creator<Bill>() {
	        @Override
	        public Bill createFromParcel(Parcel in) {
	            return new Bill(in);
	        }

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

Goods对象实现了Parcelable接口

时间: 2024-11-13 08:58:21

在android中创建包含对象数组的Parcelable的相关文章

JavaScript中创建字典对象(dictionary)实例

这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象仅仅是个数组,无法提供通过关键字来获取保存的数据,jQuery源码中提供了一种非常好的方式来解决这个问题,先看一下源码: 复制代码代码如下: function createCache() { var keys = []; function cache(key, value) {  // Use (k

本地C代码中创建Java对象

创建Java域的对象就是创建Java类的实例,再调用Java类的构造方法. 以Bitmap的构建为例,Bitmap中并没有Java对象创建的代码及外部能访问的构造方法,所以它的实例化必然是在JNI的c中实现的. BitmapFactory.java中提供了得到Bitmap的方法,时序简化为: BitmapFactory.java ->BitmapFactory.cpp -> GraphicsJNI::createBitmap()  [graphics.cpp] GraphicsJNI::cre

用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

1 package com.readme; 2 3 import java.io.BufferedWriter; 4 import java.io.File; 5 import java.io.FileWriter; 6 import java.io.IOException; 7 import java.text.SimpleDateFormat; 8 import java.util.Date; 9 import java.util.Scanner; 10 11 /** 12 * @autho

Floodlight 中创建消息对象的方法

在 floodlight 中创建各种openflow message 和 action 等采用的是简单工厂方式,BasicFactory类(实现OFMessageFactory接口,)会根据消息的类型创建不同的对象,达到更好的封装效果:此外这里调用的是枚举类型的方法.下面是具体代码: ----------工厂接口,还有OFActionFactory,约束需要具体工厂完成的事情 public interface OFMessageFactory { // 根据消息类型得到具体的实例 public 

cceditbox和cocostudio联合界面点击事件无响应问题,Android中创建文件夹问题

这两个问题折腾了我一天多时间,尽快下班时候把创建文件夹问题给解决了,刚把cceditbox点击事件无响应问题解决了.真是大爽. 1.创建文件夹 _mkdir()这个c函数就行,在vs ide中,定位的头文件是direct.h,但是这个文件不被ndk编译通过,没有这个文件.好吧,死脑筋,开始怀疑eclipse库路径设置有问题,但是不知道哪不对,搜索到了头大地步,好吧,认真仔细一看,原来是在ndk中,_mkdir函数放在了#include <sys/stat.h>中,改为这个头文件就行了. 2.点

android中scrollview包含listView对高度设置

当scrollview中包含listView时,滑动的时候会出现问题..最常见的问题是listview滑动不了...问题原因是在加载listview时它的高度应该按照adapter所绑定的数据来确定,而不是fill_parent或者是wrap_content... 项目中用到了就把它抽取出来做个记录 import android.view.View; import android.view.ViewGroup; import android.widget.ListAdapter; import

JS中:json对象数组按对象属性排序

var array = [ {name: 'a', phone: 1}, {name: 'b', phone: 5}, {name: 'd', phone: 3}, {name: 'c', phone: 4} ] array.sort(getSortFun('desc', 'phone')); function getSortFun(order, sortBy) { var ordAlpah = (order == 'asc') ? '>' : '<'; var sortFun = new F

在C# WinForm程序中创建控件数组及相应的事件处理

控件数组是VB提供的一个优秀的设计解决方案,它能很方便快捷的处理大批同类控件的响应和时间处理,但不知为什么在C#中这个优秀特性没有传承下来,甚为可惜,本文将要探讨就是如何在C# WinForm程序实现它.首先请看界面 在上面的界面中,本人想实现一个42个元素的Button数组来实现一个日历的功能,上面显示出了一部分. 其中采用了网格布局来放置这些按钮.手工创建为全部按钮后,在窗体类中代码中定义成员变量控件数组: private Button[] btns;然后在构造函数中初始化: btns =

在Javascript 中创建JSON对象--例程分析

作者:iamlaosong 要想用程序从网页上抓数据,需要熟悉HTML和JavaScript语言,这里有一个在Javascript 中创建JSON对象的例程,学习并掌握其内容,在此对此例程做个注释,记录我掌握的知识,以备将来验证是否正确. 程序很简单,分三部分: 1.<h2>部分:用大字符显示标题: 2.<p>部分:显示一段信息的结构,但无内容,内容在后面添加: 3.<scrip>部分:Javascript程序,先定义了一个JSON结构的变量JSONObject,然后,