Activity 之间传递对象的方法

总结一下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");

这样就取到了,以上是全部代码,希望对朋友们有帮助。当然还有一种方法,好像是通过序列化吧,没有具体研究,如果有朋友觉得比我这方法好用的,也希望大家共享一下,一起探索。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值