Android中Intent是用来实现组件之间的通信的,可以在组件之间传递数据。可以传递一些基本类型的数据,也可以传递自定义对象类型的数据,但是如果要传递自定义类型的对象数据,这个自定义类型的对象必须是实现了Serializable接口或者是实现Parcelable接口。

1.实现Serializable接口的对象
实现Serializable接口非常简单,Serializable接口中没有需要实现的函 数。直接使用implements关健字即可,无需其他操作。

      public class User implements Serializable{      private int id;      private String name;      public  User(){      }      public User(int id,String name){         this.id=id;         this.name=name;       }      public void setId(int id ){         this.id=id;        }       public int getId(){            return id;          }      public void setName(String name){           this.name=name;         }            public String getName(){           return name;         }        }

上述代码就是定义了一个实现了Serializable接口的User对象,这个User对象就可以被Intent中传递。

传递该对象类型的数据

User  user=new User(1,"张三");intent.putExtra("user",user);

获取该对象类型的数据

getIntent().getSerializableExtra("user");

2.实现Parcelable接口的对象
实现Parcelable接口步骤:
(1)重写describeContents方法,默认返回0就可以。
(2)重写writeToParcel方法。
(3)实例化静态内部类对象CREATOR

public class User implements Parcelable{ private int id;      private String name;      public  User(){      }      public User(int id,String name){         this.id=id;         this.name=name;       }      public void setId(int id ){         this.id=id;        }       public int getId(){            return id;          }      public void setName(String name){           this.name=name;         }            public String getName(){           return name;         }        }     public int describeContents(){         return 0;      }     public void writeToParcel(Parcel out,int flags ){         out.writeInt(id);         out.writeString(name);         /* 一定要按照成员变量声明的顺序来打包数据(写数据)*/      }     public static final Parcelable.Creaator<User>     CREATOR=new Parcelbale.Creator<User>(){     /*返回实现Parcelable接口的单个实例*/     public User createFromParcel(Parcel source){           User user=new User();               user.setId(source.readInt());               user.setName(source.readString());               return user;               /*一定要按照成员变量声明的顺序来读数据*/     }     /*返回实现Parcelable接口的多个实例*/     public User[] newArray(int size){               return new User[size];     }}}

上述代码是定义了一个实现Parcelable接口的对象,这个User对象也可以被Intent传递。

传递对象类型的数据

User user=new User(1,"张三");intent.putExtra("user",user);

获取该对象类型的数据

getIntent().getParcelableExtra("user");

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. android studio 错误:“java.io.EOFException”
  5. [置顶] android 跨进程通信
  6. android launcher之检测应用程序图标在桌面是否存在
  7. android中的设计模式--观察者模式
  8. Android(安卓)-- IPC通信机制之一Binder简介
  9. Android(安卓)如何自定义一个ContentProvider

随机推荐

  1. Android理解四种启动模式
  2. android/ophone 横竖屏切换问题的解决方
  3. 不同手机在豌豆夹上显示设备同名的解决方
  4. MoDaCo.Switch 让你的 HTC One 自由转换
  5. android 集成系统分享和第三方分享案例
  6. [置顶] android头像相册/拍照选取,裁剪及
  7. android快应用,Error: Cannot find module
  8. Android(安卓)录制手机屏幕视频生成GIF图
  9. 多核时代的移动开发(一)-函数式编程思想到
  10. 如何将 Android带入互联网数字家庭? 第三