Activity之间通过intent传递object时,该object的class需要实现Parcelable。
Interface for classes whose instances can be written to and restored from a Parcel
. Classes implementing the Parcelable interface must also have a non-null static field called CREATOR
of a type that implements the Parcelable.Creator
interface.
A typical implementation of Parcelable is:
public class MyParcelable implements Parcelable { private int mData; public int describeContents() { //一般返回0即可 return 0; } public void writeToParcel(Parcel out, int flags) { out.writeInt(mData); } public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() { public MyParcelable createFromParcel(Parcel in) { return new MyParcelable(in); } public MyParcelable[] newArray(int size) { return new MyParcelable[size]; } }; private MyParcelable(Parcel in) { mData = in.readInt(); } }
http://developer.android.com/reference/android/os/Parcelable.html
最核心的地方是
private MyParcelable(Parcel in)
和
writeToParcel(Parcel out, int flags)
读写顺序要一致。
public class Bill implements Parcelable { Integer fee; String title; Boolean result; public int describeContents() { return 0; } public void writeToParcel(Parcel out, int flags) { out.writeInt(fee); out.writeString(title); out.writeByte((byte) (result!=null && result ? 1 : 0)); } public static final Parcelable.Creator<Bill> CREATOR = new Parcelable.Creator<Bill>() { public Bill createFromParcel(Parcel in) { return new Bill(in); } public Bill[] newArray(int size) { return new Bill[size]; } }; private Bill(Parcel in) { fee = in.readInt(); title = in.readString(); result = (in.readByte()==1); } }
相关推荐
欢迎下载实现Parcelable接口的方式借助Intent实现Android工程中Activity之间Java对象的传递.zip !
实现Parcelable接口跨进程传递复杂数据
今天开发了一个功能,通过Android的AIDL...首先在client中定义OrderBean类,字段很简单,注意需要实现Parcelable接口: package com.example.wang.client.bean; import android.os.Parcel; import android.os.Parcel
主要介绍了 Android Parcelable接口使用方法详解的相关资料,实现Parcelable就是为了进行序列化,需要的朋友可以参考下
实现 Parcelable 接口:package com.wangjie.idea.plugin; public class Person{ private int id; private String name; private Float height; private Double weight; private Byte gender...
需实现Parcelable接口及其方法,在writeToParcel()方法中写入对象属性;添加公共静态变量CREATOR,在此实现对象属性读出。 由于一一举例比较繁琐,在此将方法二和方法三精简合为一个例子,如下:
在Android Studio中,你可以很快速的使用Parcelable插件进行实体类的序列化的实现,使用该插件后,你的实体类可以快速的实现Parcelable接口而不用写额外的代码。因为该插件会帮你快速的生成必须提供的方法,可以说是...
EasyMessenger ...enum(需要实现parcelable) 下载 implementation 'cn.zmy:easymessenger-lib:0.1' annotationProcessor 'cn.zmy:easymessenger-compilier:0.1' 开始使用 Client 声明接口: @Binde
GsonFormat GsonFormat是一个快速格式化json数据,自动生成实体类参数的插件。 推荐指数:四星 ...快速实现Parcelable接口的插件 Markdown support Markdown 是一种可以使用普通文本编辑器编写的标记语言,
Intent在不同的组件中传递对象数据的应用非常普遍,大家都知道在intent传递对象的方法有两种:1、实现Serializable接口、2、实现Parcelable接口。 Android中Intent传递对象的两种方法Serializable,Parcelable请点击...
Android通过Parcelable和Serializable实现各种类型嵌套序列化
顾名思义,这是个生成实现了Parcelable接口的代码的插件。 在你的类中,按下alt + insert键弹出插入代码的上下文菜单,你会看到在下面有一个Parcelable,如下所示。选择它之后,就会在你的类当中插入实现了...
Parcelable实现案例,Intent传递对象分别是简单对象与集合对象。
Android序列化——Serializable与Parcelable
Android Aidl跨进程访问parcelable接口数据,简单封装了下AIDL作为一个library被其他3个app引用,实现3个app共用一个服务,3个app中任意打开一个app开启服务,其他两个app共用此服务获取接口数据。
新建一个数据类,让它实现 Parcelable data class Worker( var id: Int, var name: String, var tasks: MutableList ) : Parcelable 使用 Android Studio 自带的 Add Parcelable Implementation ,然后你就得到...
parcelable-intellij-plugin, 面向 Android Parcelable样板代码生成的IntelliJ插件 intellij/Android Studio 插件,用于 Android Parcelable代码生成这里工具基于类中的字段生成一个 Android Parcelable插件实现。...
其中前面一种方法中的Object要实现Serializable接口,后面一种方法中的Object要实现Parcelable接口。下面我们以一个完整的例子来说明。 1.新建一个Android的工程,其中该工程的目录结构如下图: 2. 修改main.xml...
activity间传递对象,实现Parcelable 和Serializable传递对象