Android学习笔记二.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
笔记二 Activity数据传递 1.通过Intent传递数据 1)基本类型传值 =发送 Intent intent = new Intent(); intent.setAction(ent.action.CALL);// 指定动作名称 intent.addCategory(Intent.CATEGORY_DEFAULT); //传递参数 intent.putExtra(name, XXX); intent.putExtra(age, 20); startActivity(intent); =接收 Bundle bundle=getIntent().getExtras(); int age=bundle.getInt(age); String name=bundle.getString(name); 对象传值 intent中的方法putExtra(key,类型)没有传递为具体实体类的参数,它需要通过序列化后才可以在putExtra方法中进行传值,其中有两种方式: Serializable接口 =putExtra(string name,Serializable value) Parcelable接口 =putExtra(string name,Parcelable value) 这两种方式除了创建实体类的时候不一样之外,在其它地方的调用和穿件完全一致。 Serializable方式:来自java API Serializable会将对象序列化到本地,是持久化的操作 实例化对象: =发送 UserInfo userInfo=new UserInfo(); userInfo.setName(XXX); userInfo.setAge(20); Intent intent = new Intent(); intent.setAction(ent.action.CALL); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.putExtra(userInfo,userInfo); startActivity(intent); =接收 Bundle bundle=getIntent().getExtras(); UserInfo userInfo=(UserInfo)bundle.get(userInfo); Parcelable方式:来自Android API Parcelable仅仅将对象序列号到内存中,这样可以提高效率。 Activity之间的数据传递建议用Parcelable,这样可以大大提高效率。 Parcelable不像Serializable那样序列化和反序列化已经写好,它需要自己处理。 实体类: package cn.example.iphone; import android.os.Parcel; import android.os.Parcelable; public class UserInfo implements Parcelable { private String name ; private int age; public String getName() { return name; } public void setName(String name) { = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int describeContents() { return 0; } /* * 获取值 * 注意:这是一个静态对象,并且 CREATOR是固定的,必须大写 */ public static Parcelable.CreatorUserInfo CREATOR=new CreatorUserInfo() { @Override public UserInfo[] newArray(int size) { // TODO Auto-generated method stub return null; } /* * 将传递的成员变量进行反序列化 * 注意:1、反序列化的成员变量赋值顺序必须与序列号的成员变量顺序一样。 * 2、必须返回return */ @Override public UserInfo createFromParcel(Parcel source) { UserInf

文档评论(0)

tt435678 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档