文档章节

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

caryt
 caryt
发布于 2016/10/19 15:57
字数 285
阅读 10
收藏 0
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");



© 著作权归作者所有

caryt
粉丝 0
博文 49
码字总数 2679
作品 0
杭州
Android工程师
私信 提问
Android Parcelable 定义高效的序列化对象

1.实现Parcelable就是为了进行序列化,那么,为什么要序列化? 1)永久性保存对象,保存对象的字节序列到本地文件中; 2)通过序列化对象在网络中传递对象; 3)通过序列化在进程间传递对象。...

IamOkay
2014/12/03
416
0
Android中Parcelable接口用法

Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel。 Classes implementing the Parcelable interface must also have a static field ......

AlexMahoneFBI
2015/03/09
107
0
Android传递List的用法

日常的开发过程中,我们经常需要通过Intent和Binder传输数据,Object 类型不能直接传递,需要通过序列化。序列化是将对象状态转换为可保持或传输的格式,包括Parcelable和Serializable两种方...

充电实践
2018/05/20
0
0
Android传值Intent和Bundle区别

原文: http://tryenough.com/android-intent-bundle 小伙伴问Android传值Intent和Bundle区别,特此总结下: Intent与Bundle在传值上的区别 首先从使用上: Intent方式: 假设需要将数据从页...

TryEnough
03/06
0
0
Parcelable接口详细介绍

什么是Parcelable ? Parcelable,定义了将数据写入Parcel,和从Parcel中读出的接口。一个实体(用类来表示),如果需要封装到消息中去,就必须实现这一接口,实现了这一接口,该实体就成为“...

陈诗楠
2013/06/19
119
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
6
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部