歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android中Intent傳遞對象的兩種方法(Serializable,Parcelable)

今天要給大家講一下Android中Intent中如何傳遞對象,就我目前所知道的有兩種方法,一種是Bundle.putSerializable(Key,Object);另一種是Bundle.putParcelable(Key, Object);當然這些Object是有一定的條件的,前者是實現了Serializable接口,而後者是實現了Parcelable接口,為了讓大家更容易理解我還是照常寫了一個簡單的Demo,大家就一步一步跟我來吧!

第一步:新建一個Android工程命名為ObjectTranDemo(類比較多哦!)目錄結構如下圖:

第二步:修改main.xml布局文件(這裡我增加了兩個按鈕)代碼如下 [java]

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="Welcome to Mr wei's blog."  
  11.     />  
  12. <Button  
  13.     android:id="@+id/button1"  
  14.     android:layout_width="fill_parent"  
  15.     android:layout_height="wrap_content"  
  16.     android:text="Serializable"  
  17. />  
  18. <Button  
  19.     android:id="@+id/button2"  
  20.     android:layout_width="fill_parent"  
  21.     android:layout_height="wrap_content"  
  22.     android:text="Parcelable"  
  23. />  
  24. </LinearLayout>   

第三步:新建兩個類一個是Person.java實現Serializable接口,另一個Book.java實現Parcelable接口,代碼分別如下:

Person.java:

[java]

  1. package com.tutor.objecttran;  
  2. import java.io.Serializable;  
  3. public class Person implements Serializable {  
  4.     private static final long serialVersionUID = -7060210544600464481L;   
  5.     private String name;  
  6.     private int age;  
  7.     public String getName() {  
  8.         return name;  
  9.     }  
  10.     public void setName(String name) {  
  11.         this.name = name;  
  12.     }  
  13.     public int getAge() {  
  14.         return age;  
  15.     }  
  16.     public void setAge(int age) {  
  17.         this.age = age;  
  18.     }  
  19.       
  20. }  

Book.java:

[javascript]

  1. package com.tutor.objecttran;  
  2. import android.os.Parcel;  
  3. import android.os.Parcelable;  
  4. public class Book implements Parcelable {  
  5.     private String bookName;  
  6.     private String author;  
  7.     private int publishTime;  
  8.       
  9.     public String getBookName() {  
  10.         return bookName;  
  11.     }  
  12.     public void setBookName(String bookName) {  
  13.         this.bookName = bookName;  
  14.     }  
  15.     public String getAuthor() {  
  16.         return author;  
  17.     }  
  18.     public void setAuthor(String author) {  
  19.         this.author = author;  
  20.     }  
  21.     public int getPublishTime() {  
  22.         return publishTime;  
  23.     }  
  24.     public void setPublishTime(int publishTime) {  
  25.         this.publishTime = publishTime;  
  26.     }  
  27.       
  28.     public static final Parcelable.Creator<Book> CREATOR = new Creator<Book>() {  
  29.         public Book createFromParcel(Parcel source) {  
  30.             Book mBook = new Book();  
  31.             mBook.bookName = source.readString();  
  32.             mBook.author = source.readString();  
  33.             mBook.publishTime = source.readInt();  
  34.             return mBook;  
  35.         }  
  36.         public Book[] newArray(int size) {  
  37.             return new Book[size];  
  38.         }  
  39.     };  
  40.       
  41.     public int describeContents() {  
  42.         return 0;  
  43.     }  
  44.     public void writeToParcel(Parcel parcel, int flags) {  
  45.         parcel.writeString(bookName);  
  46.         parcel.writeString(author);  
  47.         parcel.writeInt(publishTime);  
  48.     }  
  49. }  
Copyright © Linux教程網 All Rights Reserved