Android 使用 Parcelable 定义可传递数据的Model

Parcelable数据

public class HotelRoom implements Parcelable {

	public HotelRoom ()
	{
		this.adultOrderNumber = 1;
		this.roomNumber = 1;
		this.kidOrderNumber = 0;
	}

	/** 成年人订单数量*/
	private int adultOrderNumber;
	/** 房间数量*/
	private int roomNumber;
	/** 儿童订单数量*/
	private int kidOrderNumber;
	/**儿童年龄*/
	private int[] childAges = null;

	public int[] getChildAges() {
		return childAges;
	}
	public void setChildAges(int[] childAges) {
		this.childAges = childAges;
	}
	public int getAdultOrderNumber() {
		return adultOrderNumber;
	}
	public void setAdultOrderNumber(int adultOrderNumber) {
		this.adultOrderNumber = adultOrderNumber;
	}
	public int getRoomNumber() {
		return roomNumber;
	}
	public void setRoomNumber(int roomNumber) {
		this.roomNumber = roomNumber;
	}
	public int getKidOrderNumber() {
		return kidOrderNumber;
	}
	public void setKidOrderNumber(int kidOrderNumber) {
		this.kidOrderNumber = kidOrderNumber;
	}

	@Override
	public int describeContents() {
		return 0;
	}
	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeInt(this.adultOrderNumber);
		dest.writeInt(this.kidOrderNumber);
		dest.writeInt(this.roomNumber);
		if(childAges==null)
		{
			childAges = new int[0]; //注意,这里必须进行处理,否则会出现空指针异常
		}
		dest.writeIntArray(childAges); 
	}

	public static final Parcelable.Creator<HotelRoom > CREATOR = new Parcelable.Creator<HotelRoom >() {

		public HotelRoom createFromParcel(Parcel source) 
		{
			HotelRoom roomOrder = new HotelRoom ();

			roomOrder.adultOrderNumber 	= source.readInt();
			roomOrder.kidOrderNumber 	= source.readInt();
			roomOrder.roomNumber		= source.readInt();
			roomOrder.childAges 		= new int[roomOrder.kidOrderNumber];
			source.readIntArray(roomOrder.childAges);

			return roomOrder;
		}

		public HotelRoom [] newArray(int size) {
			return new HotelRoom [size];
		}
	};

}
时间: 2024-10-09 23:15:29

Android 使用 Parcelable 定义可传递数据的Model的相关文章

Android程序中Acticity间传递数据

在Android开发过程中,在不同的Acitivity之间传递数据的情况是非常常见的.我花费了一点时间来总结Acitivity之间的数据传递,记录下来. 1.简单传递键值对 这种传递方式非常简单,只需要在构造Intent加入相应的键值对. 在ActivityA中,调用Intent的代码如下: 1 Intent i = new Intent(ActivityA.this,ActivityB.class); 2 i.putExtra("name", "Finlay Liu&quo

Android 开发中使用Intent传递数据的方法

Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.short[].int.int[].long.long[].float.float[].double.double[].String.String[],还有采用实现Serializable.Parcelable接口的类对象传递数据的两种方法:一种是Bundle.putSerializable(Key,Obje

Android NDK开发(四)——Java传递数据到C

转载请注明出处:http://blog.csdn.net/allen315410/article/details/41845701 前面几篇文章介绍了Android NDK开发的简单概念.常见错误及处理和从第一个Hello World开始实际做一个简单的JNI开发示例,相信看完之后,大家对NDK开发有了一个概念上的认识了,那么接下来我们需要再深入一下NDK的开发,我们知道NDK开发就是使用JNI这层"协议"在Java和C之间起个"桥梁"的作用,将Java和Nativ

Android百日程序:Intent传递数据

上一遍是回传数据,当热Activity之间是可以利用Intent很方便地传递很多数据的. 本章就两个Activity之间传递String和Int数据. 1 主要界面: 2 点击按钮之后,就进入第二个activity 这个时候会利用Toast机制显示第一个activity传递什么String和Int给第二个activity. 3 然后点击"return to main activity",回到第一个activity 同样会显示回传的信息 这样可以在activity之间来回传递需要的信息.

[Android] Activity间切换,传递数据

前面照着android系统的裁剪图片的功能自己写了一个相似的工具.功能是大体上实现了,但留下了一个调用的问题:如何从我的程序调用这个裁剪工具,并且获得裁剪后的图片呢? 其实这个也很简单了,就是intent的基础用法. 原文地址请保留http://www.cnblogs.com/rossoneri/p/3998755.html 先上个图(界面依旧没优化,难看就难看吧): 起始activity,打开图片选择窗口,随便选择一张图片 下面是跳转到裁剪界面 按下crop按钮,退出activity,回到原来

Android Service实时向Activity传递数据

演示一个案例,需求如下:在Service组件中创建一个线程,该线程用来生产数值,每隔1秒数值自动加1,然后把更新后的数值在界面上实时显示. 步骤如下:1.新建一个android项目工程,取名为demo.2.新建一个Service类,用来实时生产数值,供界面实时显示. package com.ljq.activity; import android.app.Service; import android.content.Intent; import android.os.IBinder; impo

Android Studio 在界面之间传递数据

例:从Activity1的文本框输入数据 输出到Activity2的文本框中 只列出部分代码 Activity1 private EditText edit_str;//在开头声明输入数据的文本框 edit_str = findViewById(R.id.edit_str); //找到该文本框 start.setOnClickListener(new View.OnClickListener() { //监听 @Override public void onClick(View v) { //点

Android开发之定义接口暴露数据

写了一个网络请求的工具类,然后想要获取到网络请求的结果,在网络工具类中写了一个接口,暴露除了请求到的数据 代码: 1 package com.lijingbo.knowweather.utils; 2 3 import java.io.ByteArrayOutputStream; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.net.HttpURLConnection; 7 import jav

Controller向View传递数据

1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData[“Message”] = “Hello word!”; 然后在View中读取Controller中定义的ViewData数据,代码如下: <% = Html.Encode(ViewData[“Message”]) %> 2.       使用TempData传递数据 我们在Controller中定义如下: TempData[“Message”] = “Hello word!”; 然后在Vi