Android Parcel初识

先附上一个连接,这里讲的非常详细,感谢此文作者http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html

用Parcelable序列化的对象例子如下,writeToParcel方法里的dest.writeXX顺序要与createFromParcel中parcel.readXX一致,类中一定要有public static final Parcelable.Creator<Phone> CREATOR,否则会抛异常 :

09-05 01:21:13.696: E/AndroidRuntime(1049): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test2/com.example.test2.ActivityA}: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.example.test2.bean.Phone

package com.example.test2.bean;

import android.os.Parcel;
import android.os.Parcelable;

public class Phone implements Parcelable {

public String model;
public float size;
public String manufacture;

public Phone(String manufacture, String model, float size) {
this.manufacture = manufacture;
this.model = model;
this.size = size;
}

public Phone(Parcel in) {
this.manufacture = in.readString();
this.model = in.readString();
this.size = in.readFloat();
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(manufacture);
dest.writeString(model);
dest.writeFloat(size);
}

public static final Parcelable.Creator<Phone> CREATOR = new Creator<Phone>() {

@Override
public Phone createFromParcel(Parcel source) {
return new Phone(source);
}

@Override
public Phone[] newArray(int size) {
return new Phone[size];
}
};

public String toString() {
return manufacture + ", " + model + ", " + size + "寸";
}
}

时间: 2024-09-28 15:57:04

Android Parcel初识的相关文章

Android ORM——初识greenDAO 3及使用greenDAO 3前应该掌握的一些知识点(一)

引言 总所周知,SQLite--内嵌于Android中一个占用内存极小的关系型,作为我们Android存储领域中重要的一员 ,或多或少都曾接触到数据库.即使Android系统中提供了许多操作SQLite的API,但是在业务开发中还是需要手动去编写原生SQL语句,这不仅复杂.不好维护,更重要的是不高效,常常会因为SQL语句写错而增加了开发成本,于是便出现了ORM(对象关系映射)框架,简化了编写SQL语句的开发工作,其中比较著名的有GreenDao.OrmLite.Litepal等. 一.green

android之初识Intent

首先修改values\strings.xml文件 代码如下: <resources> <string name="app_name">mytab</string> <string name="menu_settings">Settings</string> <string name="app_title">Intent操作</string> <string

Android中的Parcel机制 实现Bundle传递对象

Android中的Parcel机制    实现了Bundle传递对象    使用Bundle传递对象,首先要将其序列化,但是,在Android中要使用这种传递对象的方式需要用到Android Parcel机制,即,Android实现的轻量级的高效的对象序列化和反序列化机制. JAVA中的Serialize机制,译成串行化.序列化……,其作用是能将数据对象存入字节流当中,在需要时重新生成对象.主要应用是利用外部存储设备保存对象状态,以及通过网络传输对象等.        Android中的新的序列

[书目20160624]Android应用开发从入门到精通

卢海东 著 第1章 揭开神秘面纱——Android系统简介 1   1.1 认识Android系统 2   1.1.1 Android成长历程 2   1.1.2 发行版本 3   1.1.3 得到大家的认可——Android系统的市场份额 3   1.2 Android架构解析 4   1.2.1 Android系统架构图 4   1.2.2 应用程序(Applications) 5   1.2.3 应用程序框架层(Framework) 6   1.2.4 系统运行库(Libraries) 7

Android开发常用工具类

来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils. PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils. ParcelUtils.Rand

Android ANR分析(2)

转自:http://blog.csdn.net/ruingman/article/details/53118202 定义 主线程在特定的时间内没有做完特定的事情 常见的场景 A.input事件超过5S没有处理完成 B.service executing 超时(bind,create,start,unbind等等),前台20s,后台200s C.广播处理超时,前台10S,后台60s D.ContentProvider执行超时,20s 常见的原因 A.耗时操作,如复杂的layout,庞大的for循环

Android下打印调试堆栈方法(转)

转自:http://blog.csdn.net/freshui/article/details/9456889 打印堆栈是调试的常用方法,一般在系统异常时,我们可以将异常情况下的堆栈打印出来,这样十分方便错误查找.实际上还有另外一个非常有用的功能:分析代码的行为.Android代码太过庞大复杂了,完全的静态分析经常是无从下手,因此通过打印堆栈的动态分析也十分必要. Android打印堆栈的方法,简单归类一下 1. zygote的堆栈dump 实际上这个可以同时dump Java线程及native

Android常用的工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.S

Android常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.S