使用Serializable和Parcelable实现在activity之间的传输

Serializable的xml文件部分如下

<Button android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Serializable类型"
   android:onClick="OnStartActivitySerializableB"/>

新建一个对象类实现Serializable即可

public class Student implements Serializable{


private String name;
private String number;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}

}

java文件处理          activityA     按钮处理

 public void OnStartActivitySerializableB(View v) {
Intent intent = new Intent(this, OnStartActivityExtraBundleB.class);
intent.putExtra("TYPE", ConstantInfo.TYPE_RESERLIZED);
Student student = new Student();
student.setName("张三");
student.setNumber("123");
student.setSex("男");
intent.putExtra("student", student);
startActivity(intent);
}

activityB      接收处理主要部分

Student student = (Student) intent.getSerializableExtra("student");
mGetIdTxt.setText("姓名:" + student.getName() + "  学号:"
+ student.getNumber() + "  性别:" + student.getSex());

------------------------------------------------------------------------------------------------------

Parcelablexml文件基本同上下面看主要的事件处理

Java文件

其对象类主要实现Parcelable接口(其中内部属性自行添加)

public class UserInfo implements Parcelable{

@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}


//将写入Parcelable
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeString(userName);
dest.writeString(password);
dest.writeString(sex);

}


/*
* public static final 必须添加,否则报错


* 只能用  CREATOR 命名 
* */
public static final Parcelable.Creator<UserInfo>  CREATOR = new Creator<UserInfo>() {

@Override
public UserInfo[] newArray(int size) {
// TODO Auto-generated method stub
return new UserInfo[size];
}

@Override
public UserInfo createFromParcel(Parcel source) {
// TODO Auto-generated method stub
String name = source.readString();
String password = source.readString();
String sex = source.readString();

UserInfo userInfo = new UserInfo();
userInfo.setUserName(name);
userInfo.setPassword(password);
userInfo.setSex(sex);

return userInfo;
}
};
}

activity 文件处理                activityA          部分处理 


Intent intent = new Intent(this, OnStartActivityExtraBundleB.class);
intent.putExtra("TYPE", ConstantInfo.TYPE_PARCLABLE);
UserInfo userInfo = new UserInfo();
userInfo.setUserName("李四");
userInfo.setPassword("456");
userInfo.setSex("男");
intent.putExtra("userInfo", userInfo);
startActivity(intent);


activity B         部分处理

UserInfo userInfo = intent.getParcelableExtra("userInfo");
mGetIdTxt.setText("用户名:" + userInfo.getUserName() + "  密码:"
+ userInfo.getPassword() + "  性别:" + userInfo.getSex());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值