当前位置:  编程技术>java/j2ee

Android中Parcelable的作用实例解析

    来源: 互联网  发布时间:2014-11-07

    本文导语:  在android提供了一种类型:Parcel。被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。   Parcelable实现要点:需要实现三个东西 1)writeToParcel 方...

在android提供了一种类型:Parcel。被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以外,只有实现了Parcelable接口的类才能被放入Parcel中。
 
Parcelable实现要点:需要实现三个东西

1)writeToParcel 方法。该方法将类的数据写入外部提供的Parcel中.声明如下:
writeToParcel (Parcel dest, int flags) 具体参数含义见javadoc

2)describeContents方法。没搞懂有什么用,反正直接返回0也可以

3)静态的Parcelable.Creator接口。本接口有两个方法:

createFromParcel(Parcel in) 实现从in中创建出类的实例的功能

newArray(int size) 创建一个类型为T,长度为size的数组,仅一句话(return new T[size])即可。估计本方法是供外部类反序列化本类数组使用。

测试用的接收信息Activity:

import android.app.Activity;  
 
import android.content.Intent;  
 
import android.os.Bundle;  
import android.os.Parcelable;  
 
public class Test extends Activity {  
   
  @Override 
  public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  
    Intent i = getIntent();  
    Person p = i.getParcelableExtra("yes");  
    System.out.println("---->"+p.name);  
    System.out.println("---->"+p.map.size());  
  }  
} 

发送的Activity:

import java.util.HashMap;  
 
import android.app.Activity;  
import android.content.Intent;  
import android.os.Bundle;  
 
public class TestNew extends Activity {  
   
  @Override 
  public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  
    Intent intent = new Intent();  
    Person p = new Person();  
    p.map = new HashMap();  
    p.map.put("yes", "ido");  
    p.name="ok";  
    intent.putExtra("yes", p);  
    intent.setClass(this, Test.class);  
    startActivity(intent);  
  }  
} 

Parcelable的实现类:

import java.util.HashMap;  
import android.os.Parcel;  
import android.os.Parcelable;  
 
public class Person implements Parcelable {  
 
  public HashMap map = new HashMap ();  
    
  public String name ;  
  @Override 
  public int describeContents() {  
    return 0;  
  }  
  @Override 
  public void writeToParcel(Parcel dest, int flags) {  
 
    dest.writeMap(map);  
    dest.writeString(name);  
  }  
  public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {  
//重写Creator
 
    @Override 
    public Person createFromParcel(Parcel source) {  
      Person p = new Person();  
      p.map=source.readHashMap(HashMap.class.getClassLoader());  
      p.name=source.readString();  
      return p;  
    }  
    @Override 
    public Person[] newArray(int size) {  
      // TODO Auto-generated method stub  
      return null;  
    }  
  };  
 
} 

    
 
 

您可能感兴趣的文章:

  • Android瀑布流实例 android_waterfall
  • Android的OpenGL编程实例 Android-GL
  • android 简单图片动画播放的实例代码
  • android WakeLock使用方法代码实例
  • android自动安装apk代码实例(不使用apk安装器安装)
  • android 弹出提示框的使用(图文实例)
  • 控制Android LED灯颜色的代码实例
  • Android中AnimationDrawable使用的简单实例
  • Android中将View的内容保存为图像的简单实例
  • Android入门之LinearLayout、AbsoluteLayout的用法实例讲解
  • android中Bitmap的放大和缩小实例代码
  • android中写一个内部类来选择文件夹中指定的图片类型实例说明
  • 怎样删除android的gallery中的图片实例说明
  • 在Android中 获取正在运行的Service 实例
  • Android根据电话号码获得联系人头像实例代码
  • Android调用默认浏览器打开指定Url的方法实例
  • android双缓冲技术实例详解
  • ANDROID 完美退出APP的实例代码
  • Android对sdcard扩展卡文件操作实例详解
  • Android 清除SharedPreferences 产生的数据(实例代码)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 解析ADT-20问题 android support library
  • android layout XML解析错误的解决方法
  • Android入门之TableLayout应用解析(一)
  • 解析:android 如何从JPEG生成BufferedImage
  • 基于Android XML解析与保存的实现
  • 基于android中读取assets目录下a.txt文件并进行解析的深入分析
  • 解析Android应用启动后自动创建桌面快捷方式的实现方法
  • Android入门之TableLayout应用解析(二)
  • 解析Android中string-array数据源的简单使用
  • 解析android创建快捷方式会启动两个应用的问题
  • 解析离线安装Eclipse的Android ADT开发插件的具体操作(图文)
  • 解析后台进程对Android性能影响的详解
  • 解析Android横竖屏切换的问题
  • 解析android中的帮助、about、关于作者、HELP等提示页面
  • Android中asset文件夹与raw文件夹的区别深入解析
  • 解析Android应用程序运行机制
  • android4.0与2.3版本的TP代码区别解析
  • 解析Android中webview和js之间的交互
  • 解析Android开发优化之:对界面UI的优化详解(二)
  • 解析Android开发优化之:对界面UI的优化详解(三)
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android系统自带样式 (android:theme)
  • Android开发需要的几点注意事项总结
  • Android网络共享软件 Android Wifi Tether
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android 图标库 Android GraphView
  • Android访问与手机通讯相关类的介绍
  • 轻量级Android开发工具 Android Tools
  • Android及andriod无线网络Wifi开发的几点注意事项
  • Android 开发环境 Android Studio
  • Android 2.3 下StrictMode介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3