eclipse
Serializable方法要传送的自定义类型:为了配合实验新建了如图所示的类,要传输的对象关键是实现了Serializable接口,也就是传送的对象要求是可序列化的。
Serializable方法发送端:和存放基本类型数据到Bundle的方法不一样,使用的是bundle.putSerializable()方法。发送端主要代码为: Intent intent = new Intent(); intent.setClass(MainActivity.this, MsgActivity.class); Bundle bundle = new Bundle(); Contact contact = new Contact();//要发送的对象 contact.setTelNum(editTextTelNum.getText().toString()); bundle.putSerializable('telNum', contact); intent.putExtra('bundle',bundle); startActivity(intent);
Serializable方法接收端:和接收普通数据类型的区别在于用getSerializable()方法得到对象。接收端主要代码为: TextView editTextTelNumMsg = (TextView) this .findViewById(R.id.editTextTelNumMsg); Intent intent = getIntent(); Bundle bundle = intent.getBundleExtra('bundle'); Contact contact = (Contact) bundle.getSerializable('telNum');//得到对象 editTextTelNumMsg.setText(contact.getTelNum());
Parcelable方法要传送的自定义类型:要传输的对象关键是实现了Parcelable接口,和实现Serializable相比比较复杂,要重写Parcelable接口的几个方法。实例代码如下:public class Contact implements Parcelable { private String telNum; // 联系人电话 public String getTelNum() { return telNum; } public void setTelNum(String telNum) { this.telNum = telNum; } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(telNum); } public static final Parcelable.Creator
Parcelable方法接收端:和Serializable方法类似,调用getParcelable()得到对象。