在android开发中,可能要在activity之间传递对象,分两种方式传递
1.序列化要传递的对象
public class UserInfo implements Serializable private static final long serialVersionUID = 1L;
关键代码:
发送端:
UserInfo info = new UserInfo(); info.setName("haha"); info.setPass("hahapss"); Intent in = new Intent(MainActivity.this,SerActivity.class); Bundle b = new Bundle(); b.putSerializable("userinfo",info); in.putExtras(b);接收端:
Intent in = getIntent(); Bundle b = in.getExtras(); UserInfo info = (UserInfo) b.getSerializable("userinfo");
2.将要传递的对象实现Parcelable接口
public class Book implements Parcelable
将book中的属性实现get和set方法
关键代码:
package com.example.transobject; import android.annotation.SuppressLint; import android.os.Parcel; import android.os.Parcelable; public class Book implements Parcelable { private String bookName; private String author; public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() { public Book createFromParcel(Parcel source) { Book mBook = new Book(); mBook.bookName = source.readString(); mBook.author = source.readString(); return mBook; } public Book[] newArray(int size) { return new Book[size]; } }; public int describeContents() { return 0; } public void writeToParcel(Parcel parcel, int flags) { parcel.writeString(bookName); parcel.writeString(author); } }发送端:
package com.example.transobject; import android.annotation.SuppressLint; import android.os.Parcel; import android.os.Parcelable; public class Book implements Parcelable { private String bookName; private String author; public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() { public Book createFromParcel(Parcel source) { Book mBook = new Book(); mBook.bookName = source.readString(); mBook.author = source.readString(); return mBook; } public Book[] newArray(int size) { return new Book[size]; } }; public int describeContents() { return 0; } public void writeToParcel(Parcel parcel, int flags) { parcel.writeString(bookName); parcel.writeString(author); } }接收端:
Intent in = getIntent(); Bundle b = in.getExtras(); Book book = b.getParcelable("book");