import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
public class Product implements Parcelable{
/**
* 商品的ID
*/
private String productID;
/**
* 商品名称
*/
private String productName;
/**
* 商品图片
*/
private String productImg;
/**
* 商品市场价格
*/
private float marketPrice;
public static final Parcelable.Creator<Product> CREATOR = new Creator(){
@Override
public ProductcreateFromParcel(Parcel source) {
// TODO Auto-generated method stub
// 必须按成员变量声明的顺序读取数据,不然会出现获取数据出错 ,一定要注意顺序
Productp = new Product();
p.setProductID(source.readString());
p.setProductName(source.readString());
p.setProductImg(source.readString());
p.setMarketPrice(source.readFloat());
return p;
}
@Override
public Product[] newArray(int size) {
// TODO Auto-generated method stub
return new Product[size];
}
};
public String getProductID() {
return productID;
}
public void setProductID(String productID) {
this.productID = productID;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductImg() {
return productImg;
}
public void setProductImg(String productImg) {
this.productImg = productImg;
}
public float getMarketPrice() {
return marketPrice;
}
public void setMarketPrice(float marketPrice) {
this.marketPrice = marketPrice;
}
public float getPurchasePrice() {
return purchasePrice;
}
public void setPurchasePrice(float purchasePrice) {
this.purchasePrice = purchasePrice;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(productID);
dest.writeString(productName);
dest.writeString(productImg);
dest.writeFloat(marketPrice);
}
}
使用:
ArrayList<Product> arrayList=new ArrayList<Product>();
Productproduct=new Product();
product.setProductID(“122222”);
product.setProductName(“衣服”);
product.setProductImg(“http://www.baidu.212b1jj.jpg”);
product.setMarketPrice("12.3");
arrayList.add(product);
//使用Intent传递
intent.putParcelableArrayListExtra("product", arrayList);
也可以直接传Parcelable[]即 Product[] 获取时直接getIntent().getParcelableArrayListExtra("product");
分享到:
相关推荐
Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat...
被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。 两种序列化方式的区别: 1.在...
Intent在不同的组件中传递对象数据的应用非常普遍,大家都知道在intent传递对象的方法有两种:1、实现Serializable接口、2、实现Parcelable接口。 Android中Intent传递对象的两种方法Serializable,Parcelable请点击...
Android中的传递有两个方法,一个是Serializable,另一个是Parcelable。 Serializable是J2SE本身就支持的。而Parcelable是Android所特有的。 二者的使用场景和区别: 1)在使用内存的时候,Parcelable比Serializable...
被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。 两种序列化方式的区别: 1.在...
利用方法:public Intent putExtra (String name, Serializable value)传递一个实现了序列化接口类的对象,此方法的实参被序列化到磁盘。 方法二: 把数据存放到应用程序的“Context”中,定义MyApplication类,让其...
Parcelable序列化,intent传递对象
在Android系统中关于序列化的方法一般有两种,分别是实现Serializable接口和Parcelable接口,其中Serializable接口是来自Java中的序列化接口,而Parcelable是Android自带的序列化接口。 上述的两种序列化接口都有各自...
Tips >later Main Android中的异步任务机制 Android中AsyncTak的使用与源码分析 ...Android中Intent传递对象的两种方法(Serializable,Parcelable) 评论 29,85,96 序列化: Serializable与Parce
Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者Intent中进行传递,也可以将对象转化为JSON字符串,进行传递。 序列化对象可以使用Java的Serializable的接口、Parcelable接口。...
当然,传输的数据必须能够被序列化,比如基本类型、实现了Parcelable接口的对象、实现了Serializable接口的对象以及一些Android支持的特殊对象,具体内容可以看Bundle这个类,就可以看到所有它支持的类型。...
不再支持可序列化的数据传输,而是使用性能更好的Parcelable大对象传输 支持多进程活动跳转 减少内存占用并改善可回收内存 AutoPage v1.0.4 如果您认为这很好,请给我一颗星 Android活动轻松跳转 每当活动或片段...