Intent传递Object之Parcelable

1、现将要传递的值,封装成bean。

2、bean必须实现Parcelable。写法如下:

public class User implements Parcelable {
         privateint id;
         privateString name;
         privateString psw;
         privateint status;
         privateString department;
         privateString phone;


         publicint getId() {
                   returnid;
         }


         publicvoid setId(int id) {
                   this.id= id;
         }


         publicString getName() {
                   returnthis.name;
         }


         publicvoid setName(String name) {
                   this.name= name;
         }


         publicString getPsw() {
                   returnthis.psw;
         }


         publicvoid setPsw(String psw) {
                   this.psw= psw;
         }


         publicint getStatus() {
                   returnthis.status;
         }


         publicvoid setStatus(int status) {
                   this.status= status;
         }


         publicString getDepartment() {
                   returnthis.department;
         }


         publicvoid setDepartment(String department) {
                   this.department= department;
         }


         publicString getPhone() {
                   returnthis.phone;
         }


         publicvoid setPhone(String phone) {
                   this.phone= phone;
         }


         @Override
         publicint describeContents() {
                   //TODO Auto-generated method stub
                   return0;
         }


         @Override
         publicvoid writeToParcel(Parcel dest, int flags) {
                   dest.writeInt(id);
                   dest.writeString(name);
                   dest.writeString(psw);
                   dest.writeInt(status);
                   dest.writeString(department);
                   dest.writeString(phone);
         }


         publicstatic final Parcelable.Creator CREATOR = new Creator() {
                   @Override
                   publicUser createFromParcel(Parcel source) {
                            //必须按成员变量声明的顺序读取数据,不然会出现获取数据出错
                            Useru = new User();
                            u.setId(source.readInt());
                            u.setName(source.readString());
                            u.setPsw(source.readString());
                            u.setStatus(source.readInt());
                            u.setDepartment(source.readString());
                            u.setPhone(source.readString());


                            returnu;
                   }


                   @Override
                   publicUser[] newArray(int size) {
                            returnnew User[size];
                   }
         };


}

3、数据跳转并发送

                                     Intentintent = new Intent();
                                     Bundlebundle = new Bundle();
                                     bundle.putParcelable("user",userUp); 
                                     intent.setClass(UserManageActivity.this,UserUpdateActivity.class);
                                     intent.putExtras(bundle);
                                     startActivity(intent);

4、接收

                                     user =(User) getIntent().getParcelableExtra("user");

 

你可能感兴趣的:(Android)