Activity之間經過Intent傳遞值,支持基本數據類型和String對象及它們的數組對象byte、byte[]、char、char[]、boolean、boolean[]、short、short[]、int、int[]、long、long[]、float、float[]、double、double[]、String、String[],還有采用實現Serializable、Parcelable接口的類對象傳遞數據的兩種方法:一種是Bundle.putSerializable(Key,Object);另外一種是Bundle.putParcelable(Key, Object)java
例如:android
import android.os.Parcel; import android.os.Parcelable; public class Book implements Parcelable { private String bookName; private String author; private int publishTime; 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 int getPublishTime() { return publishTime; } public void setPublishTime(int publishTime) { this.publishTime = publishTime; } 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(); mBook.publishTime = source.readInt(); 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); parcel.writeInt(publishTime); } }
實現Serializable接口:數組
import java.io.Serializable; public class Person implements Serializable { private static final long serialVersionUID = -7060210544600464481L; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
這樣在Activity中就可編寫傳遞數據代碼:this
Intent mIntent = new Intent(this, 地址Activity.class); Bundle mBundle = new Bundle(); //採用parcelable傳輸數據 mBundle.putParcelable("data", mBook); //採用serializable傳輸數據 mBundle.putSerializable("data", items); mIntent.putExtras(mBundle); startActivity(mIntent);
接受數據能夠採用:spa
Intent intent = getIntent(); ArrayList<Map<String, String>> items = (ArrayList<Map<String, String>>)intent.getExtras().get("data");