Android 開發中使用Intent傳遞數據的方法

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");
相關文章
相關標籤/搜索