Android Parcelable
来源:互联网 发布:ubuntu samba权限设置 编辑:程序博客网 时间:2024/06/05 02:21
在Activity传递对象等很多需要序列化的地方可以使用parcelable
,效率比serializable
要高。
链接:http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html
个人实例: Activity间传递对象
包含:Int, String, 对象列表等
EnglishReading
中存在EnglishReadingItem
链表,因此EnglishReadingItem
也需要实现Parcelable
EnglishReading
public class EnglishReading implements Parcelable { public int id; // 题目的ID号 public String document_txt; // 题干 public boolean isComplete; public ArrayList<EnglishReadingItem> body_all; //子题目类 protected EnglishReading(Parcel in) { //int id = in.readInt(); //String document_txt = in.readString(); //boolean isComplete = (in.readInt() == 0 ? false : true); //读取链表 //body_all = in.createTypedArrayList(EnglishReadingItem.CREATOR);//另一个方法 body_all = new ArrayList<EnglishReadingItem>(); in.readList(body_all, EnglishReadingItem.class.getClassLoader()); } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(this.id); dest.writeString(this.document_txt); //写入布尔值方法 dest.writeInt(isComplete? 1 : 0); dest.writeList(body_all); }//如下系统自动补全 public static final Creator<EnglishReading> CREATOR = new Creator<EnglishReading>() { @Override public EnglishReading createFromParcel(Parcel in) { return new EnglishReading(in); } @Override public EnglishReading[] newArray(int size) { return new EnglishReading[size]; } }; @Override public int describeContents() { return 0; }}
EnglishReadingItem
public class EnglishReadingItem implements Parcelable{ public ArrayList<String> body; //String数组 protected EnglishReadingItem(Parcel in) { body = in.createStringArrayList(); //读取String链表 } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeStringList(body); //写入String链表 }//系统自动补全 public static final Creator<EnglishReadingItem> CREATOR = new Creator<EnglishReadingItem>() { @Override public EnglishReadingItem createFromParcel(Parcel in) { return new EnglishReadingItem(in); } @Override public EnglishReadingItem[] newArray(int size) { return new EnglishReadingItem[size]; } }; @Override public int describeContents() { return 0; }}
0 0
- Android Parcelable
- Android Parcelable
- Android Parcelable
- Android Parcelable
- Android Parcelable
- android parcelable
- android Parcelable
- android Parcelable
- Android Parcelable
- Android Parcelable
- Android Parcelable
- Android :Parcelable
- android Parcelable
- Android Parcelable
- Android Parcelable
- android Parcelable
- Android Parcelable
- Android Parcelable
- ES6的一些特性
- VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
- 面试:C语言C++小知识总结(2)
- rsync 使用
- HDU 1232 畅通工程 【并查集模板】
- Android Parcelable
- Javascript强化教程——什么是函数?
- tjut 4305
- Android Studio调试功能使用总结【转】
- Spring MVC基于注解配置入门教程及其代码实例
- 删除U盘记录
- Camera preview 640X480 究竟是什么意思?
- c.toString() 和 String s = new String(c) 区别
- iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)