您的位置:首页 > 移动开发 > Android开发

android intent 传递对象需要序列化实现Parcelable接口

2016-10-19 00:00 134 查看
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 Product createFromParcel(Parcel source) {

// TODO Auto-generated method stub

// 必须按成员变量声明的顺序读取数据,不然会出现获取数据出错 ,一定要注意顺序

Product p = 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>();

Product product=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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: