- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)