`
caryt
  • 浏览: 8486 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
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");



分享到:
评论

相关推荐

    Android Intent传递数据大小限制详解

    Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能会出现异常。比如App闪退,或是Intent发送不成功,logcat...

    Android 通过Intent使用Bundle传递对象详细介绍

    被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。 两种序列化方式的区别: 1.在...

    Intent传递对象之Serializable和Parcelable的区别

    Intent在不同的组件中传递对象数据的应用非常普遍,大家都知道在intent传递对象的方法有两种:1、实现Serializable接口、2、实现Parcelable接口。 Android中Intent传递对象的两种方法Serializable,Parcelable请点击...

    Android中Intent传递对象的两种方法Serializable,Parcelable

    Android中的传递有两个方法,一个是Serializable,另一个是Parcelable。 Serializable是J2SE本身就支持的。而Parcelable是Android所特有的。 二者的使用场景和区别: 1)在使用内存的时候,Parcelable比Serializable...

    在Android中通过Intent使用Bundle传递对象的使用方法

    被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable。 两种序列化方式的区别: 1.在...

    Android开发中Intent传递对象的方法分析

    利用方法:public Intent putExtra (String name, Serializable value)传递一个实现了序列化接口类的对象,此方法的实参被序列化到磁盘。 方法二: 把数据存放到应用程序的“Context”中,定义MyApplication类,让其...

    Parcelable与Serializable

    Parcelable序列化,intent传递对象

    Android中的序列化浅析

    在Android系统中关于序列化的方法一般有两种,分别是实现Serializable接口和Parcelable接口,其中Serializable接口是来自Java中的序列化接口,而Parcelable是Android自带的序列化接口。 上述的两种序列化接口都有各自...

    Android代码-Android 一些重要知识点解析整理

    Tips &gt;later Main Android中的异步任务机制 Android中AsyncTak的使用与源码分析 ...Android中Intent传递对象的两种方法(Serializable,Parcelable) 评论 29,85,96 序列化: Serializable与Parce

    Android中传递对象的三种方法的实现

    Android中,Activity和Fragment之间传递对象,可以通过将对象序列化并存入Bundle或者Intent中进行传递,也可以将对象转化为JSON字符串,进行传递。 序列化对象可以使用Java的Serializable的接口、Parcelable接口。...

    Android之使用Bundle进行IPC详解

    当然,传输的数据必须能够被序列化,比如基本类型、实现了Parcelable接口的对象、实现了Serializable接口的对象以及一些Android支持的特殊对象,具体内容可以看Bundle这个类,就可以看到所有它支持的类型。...

    AutoPage:Android活动轻松跳

    不再支持可序列化的数据传输,而是使用性能更好的Parcelable大对象传输 支持多进程活动跳转 减少内存占用并改善可回收内存 AutoPage v1.0.4 如果您认为这很好,请给我一颗星 Android活动轻松跳转 每当活动或片段...

Global site tag (gtag.js) - Google Analytics