您的位置:首页 > 其它

Activity 之间传递对象的方法

2011-07-13 14:21 363 查看
总结一下Activity之间传递对象的方法
首先,在我们的javabean内部的属性都做了封装一后,使用实现Parcelable接口的方式来做传递,下面是我的类的代码:
public class UsersInfo implements Parcelable {

private Long userId;
private String userName; // 用户名
private String userPassword; // 用户密码
private int userSex; // 用户性别
private String userAddress; // 用户地址
private int userAge; // 用户年龄
private String userLikes; // 用户爱好
private String userMark; // 用户描述
private String userPhoneNumber; // 用户手机号码
private String userImgIcon; // 用户头像
private int userStatus; // 用户状态
private double userx; //用户经度
private double usery; //用户纬度
private String userUpdateTime; //用户更新时间
private String userImei;

public Long getUserId() {
return userId;
}

public void setUserId(Long userId) {
this.userId = userId;
}

public int getUserStatus() {
return userStatus;
}

public void setUserStatus(int userStatus) {
this.userStatus = userStatus;
}

public int getUserSex() {
return userSex;
}

public void setUserSex(int userSex) {
this.userSex = userSex;
}

public String getUserImgIcon() {
return userImgIcon;
}

public void setUserImgIcon(String userImgIcon) {
this.userImgIcon = userImgIcon;
}

public String getUserUpdateTime() {
return userUpdateTime;
}

public void setUserUpdateTime(String userUpdateTime) {
this.userUpdateTime = userUpdateTime;
}

public double getUserx() {
return userx;
}

public void setUserx(double userx) {
this.userx = userx;
}

public double getUsery() {
return usery;
}

public void setUsery(double usery) {
this.usery = usery;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getUserPassword() {
return userPassword;
}

public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}

public String getUserAddress() {
return userAddress;
}

public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}

public int getUserAge() {
return userAge;
}

public void setUserAge(int userAge) {
this.userAge = userAge;
}

public String getUserLikes() {
return userLikes;
}

public void setUserLikes(String userLikes) {
this.userLikes = userLikes;
}

public String getUserMark() {
return userMark;
}

public void setUserMark(String userMark) {
this.userMark = userMark;
}

public String getUserPhoneNumber() {
return userPhoneNumber;
}

public void setUserPhoneNumber(String userPhoneNumber) {
this.userPhoneNumber = userPhoneNumber;
}

public String getUserImei() {
return userImei;
}

public void setUserImei(String userImei) {
this.userImei = userImei;
}

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

@Override
public void writeToParcel(Parcel dest, int arg1) {
//不能错位
dest.writeLong(userId);
dest.writeString(userName);
dest.writeString(userPassword);
dest.writeInt(userSex);
dest.writeString(userAddress);
dest.writeInt(userAge);
dest.writeString(userLikes);
dest.writeString(userMark);
dest.writeString(userPhoneNumber);
dest.writeString(userImgIcon);
dest.writeInt(userStatus);
dest.writeDouble(userx);
dest.writeDouble(usery);
dest.writeString(userUpdateTime);
dest.writeString(userImei);
}

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

@Override
public UsersInfo createFromParcel(Parcel source) {
// TODO Auto-generated method stub
UsersInfo info = new UsersInfo();
info.userId = source.readLong();
info.userName = source.readString();
info.userPassword = source.readString();
info.userSex = source.readInt();
info.userAddress = source.readString();
info.userAge = source.readInt();
info.userLikes=source.readString();
info.userMark = source.readString();
info.userPhoneNumber = source.readString();
info.userImgIcon=source.readString();
// info.userImgIcon=source.createByteArray();
info.userStatus = source.readInt();
info.userx = source.readDouble();
info.usery = source.readDouble();
info.userUpdateTime=source.readString();
info.userImei=source.readString();
return info;
}

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

};
}
其中describeContents() 这个方法不用管,writeToParcel 这个方法注意了, 需要和上面封装的那些属性一样,Parcelable.Creator<UsersInfo> CREATOR 这个里面实现的方法也是一样,最后newArray 这个方法返回return new UsersInfo[size];   
下面是调用代码:
Bundle mBundle = new Bundle();
intent = new Intent(AAtivity.this, BAtivity.class);

UsersInfo user=等于你要传递的对象;

mBundle.putParcelable("userObject", user);
intent.putExtras(mBundle);
startActivity(intent);

这样就传递过去了,在BAtivity里面取这个对象也是一样的,如下代码:
UsersInfo  usersInfo = (UsersInfo)getIntent().getParcelableExtra("userObject");

这样就取到了,以上是全部代码,希望对朋友们有帮助。当然还有一种方法,好像是通过序列化吧,没有具体研究,如果有朋友觉得比我这方法好用的,也希望大家共享一下,一起探索。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string user class 手机