Android对象传值

      之前遇到过几次需要传递对象的程序,但是但是都没有直接去解决,今天又碰见了,就看了下,发现现在有俩种方式可以进行对象传递:

Serializable is a standard Java interface. You simply mark a class Serializable by implenting the interface, and Java will automatically serialize it in certain situations.

Parcelable is an Android specific interface where you implement the serialization yourself. It was created to be far more efficient that Serializable, and to get around some problems with the default Java serialization scheme.

对于Serializable 自己使用即可。例如:

public class InfoB implements Serializable{

	/**
	 *serialVersionUID 
	 */
	private static final long serialVersionUID = 1L;
	String testaString = "aaaa";
	String testbString = "bbbb";

	/**
	 * Retrieve the testaString.
	 * 
	 * @return the testaString
	 */
	public String getTestaString() {
		return testaString;
	}

	/**
	 * Set the value of testaString.
	 * 
	 * @param testaString
	 *            the testaString to set
	 */
	public void setTestaString(String testaString) {
		this.testaString = testaString;
	}

	/**
	 * Retrieve the testbString.
	 * 
	 * @return the testbString
	 */
	public String getTestbString() {
		return testbString;
	}

	/**
	 * Set the value of testbString.
	 * 
	 * @param testbString
	 *            the testbString to set
	 */
	public void setTestbString(String testbString) {
		this.testbString = testbString;
	}


}



对于Parcelable 

我们需要实现俩个借口,例子如下:

public class Info implements Parcelable {
	String testaString = "aaaa";
	String testbString = "bbbb";

	/**
	 * Retrieve the testaString.
	 * 
	 * @return the testaString
	 */
	public String getTestaString() {
		return testaString;
	}

	/**
	 * Set the value of testaString.
	 * 
	 * @param testaString
	 *            the testaString to set
	 */
	public void setTestaString(String testaString) {
		this.testaString = testaString;
	}

	/**
	 * Retrieve the testbString.
	 * 
	 * @return the testbString
	 */
	public String getTestbString() {
		return testbString;
	}

	/**
	 * Set the value of testbString.
	 * 
	 * @param testbString
	 *            the testbString to set
	 */
	public void setTestbString(String testbString) {
		this.testbString = testbString;
	}

	@Override
	public int describeContents() {
		return 0;
	}

	public static final Parcelable.Creator<Info> CREATOR = new Creator<Info>() {
		@Override
		public Info createFromParcel(Parcel source) {
			final Info mBook = new Info();
			mBook.testaString = source.readString();
			mBook.testbString = source.readString();
			return mBook;
		}

		@Override
		public Info[] newArray(int size) {
			return new Info[size];
		}
	};

	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(testaString);
		dest.writeString(testbString);
	}
}






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值