android 不同activity之间传递对象有两种方式:

Bundle 的 1) public void putSerializable(String key, Serializable value) ; 2)public void putParcelable(String key, Parcelable value)

所以传递类需要 implements Serializable 或者 implements Parcelable 即可。

一)implements Serializable 、 Parcelable的两个类:

1)Serializable: Mobile.java

package com.example.objecttest.myclass;import java.io.Serializable;public class Mobile implements Serializable {private static final long serialVersionUID = 5403208217014231126L;private String model;public Mobile(String model) {super();this.model = model;}public String getModel() {return model;}public void setModel(String model) {this.model = model;}}


 

2)public interface Parcelable

如果某个类实现了这个接口,那么它的对象实例可以写入到Parcel中,并且能够从中恢复,并且这个类必须要有一个staticfield,并且名称要为CREATOR,这个field是某个实现了Parcelable.Creator接口的类的对象实例。

public static interface Parcelable.Creator

    Interface that must be implemented and provided as a public CREATOR field that generates instances of your Parcelable class from a Parcel

   其有两个成员函数:createFromParcel和newArray。

 createFromParcel函数创建实现Parcelable接口的某个类的一个新的对象实例,并且用从给定的Parcel中获取的数据进行实例化,Parcel中的数据是在之前通过Parcelable.writeToParcel方式写入的数据。

   newArray函数创建实现Parcelable接口的某个类的一个新的对象数组,数组中的每个项都被初始化为null。

 

Parcelable : Pad,java

package com.example.objecttest.myclass;import android.os.Parcel;import android.os.Parcelable;public class Pad implements Parcelable {private String model;public Pad(String model) {super();this.model = model;}public static final Parcelable.Creator CREATOR = new Creator() {public Pad createFromParcel(Parcel source) {Pad mBook = new Pad(source.readString());return mBook;}public Pad[] newArray(int size) {return new Pad[size];}};@Overridepublic int describeContents() {// TODO Auto-generated method stubreturn 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {// TODO Auto-generated method stubdest.writeString(model);}//public String getModel() {return model;}public void setModel(String model) {this.model = model;}}


 

二 )使用:

1)

 /**
  * Serializeable传递对象的方法
  */
 private void SerializeMethod() {
  Mobile mMobile = new Mobile("ME811");
  Intent mIntent = new Intent(this, SerializableActivity.class);
  Bundle mBundle = new Bundle();
  mBundle.putSerializable(SER_KEY, mMobile);
  mIntent.putExtras(mBundle);

  startActivity(mIntent);
 }

 

2)

 /**
  * Pacelable传递对象方法
  */
 private void PacelableMethod() {
  Pad mPolice = new Pad("Nexus 7");
  Intent mIntent = new Intent(this, ParcelableActivity.class);
  Bundle mBundle = new Bundle();
  mBundle.putParcelable(PAR_KEY, mPolice);
  mIntent.putExtras(mBundle);

  startActivity(mIntent);
 }

 

三 )获得传递过来的结果:

1)Mobile mPerson = (Mobile) getIntent().getSerializableExtra(SER_KEY);

2)Pad mPad = (Pad) getIntent().getParcelableExtra(PAR_KEY);

 

 

更多相关文章

  1. android 中调用接口发送短信
  2. 【Android】Web开发之通过标准Java接口处理Http请求
  3. FregClient进程,创建一个BpFregService类型的代理对象
  4. 实例教程八:采用ListView实现数据列表显示
  5. android XMl 解析神奇xstream 三: 把复杂对象转换成 xml
  6. AIDL(android 接口描述语言)
  7. Android中一个Activity调用另一个Activity — Intent对象的使用
  8. Fragment+viewpager 傻子都能看懂的demo 实例(博主就是个傻子)
  9. android与tomcat服务器交互实例

随机推荐

  1. Android Native C/C++简介
  2. Android Dialog对话框的七种形式的使用
  3. Android中的布局方式(二)
  4. Android在TQ2440开发板上的移植
  5. android声音播放
  6. Android用Application设置全局变量以及使
  7. Android之Adapter用法总结
  8. Android学习笔记之Android包、ADB介绍
  9. android 各种控件颜色值的设置(使用Drawab
  10. 官方NotePad实例学习--ListActivity的使