2012-04-10 50 views
1

對不起,如果這個問題已經回答,我搜索了很多,但我找不到任何問題與我的問題。Android意圖putExtra(字符串,可串行化)

我正在寫一個從互聯網數據庫獲取數據的android應用程序。我的第一個活動從數據庫中檢索數據,並且嘗試將對整個數據庫的引用傳遞給另一個活動。

它看起來簡要簡要如下:

//server is wrapper class for my database connection/ data retrieving 
Server server = new Server(...connection data...); 
server.connect(); 
server.filldata(); 

之後,我嘗試將此傳遞到另一個活動

Intent intent = new Intent(this, OtherActivity.class); 
intent.putExtra("server", server); //server, and all implements Serializable 
startActivity(intent); 

並在此之後,我收到沒有java.lang.reflect.InvocationTargetException解釋,問題可能是什麼。

如果你知道一種方法來傳遞一個對象(int,string除外)到另一個activity,請幫幫我!

+0

你可以發佈你的stacktrace嗎? – thedude19 2012-04-10 18:42:16

+0

[這篇文章應該幫助你一些](http://stackoverflow.com/questions/2906925/android-how-do-i-pass-an-object-from-one-activity-to-another) – Chris 2012-04-10 18:42:23

+0

是任何與實現列表的類的Server對象序列化的字段? – 2012-04-10 18:43:59

回答

2

您的類Server應該實現接口Parcelable,以便通過綁定傳輸其對象。

見下面的例子,這是可以here

public class MyParcelable implements Parcelable { 
    private int mData; 

    public int describeContents() { 
     return 0; 
    } 

    public void writeToParcel(Parcel out, int flags) { 
     out.writeInt(mData); 
    } 

    public static final Parcelable.Creator<MyParcelable> CREATOR 
      = new Parcelable.Creator<MyParcelable>() { 
     public MyParcelable createFromParcel(Parcel in) { 
      return new MyParcelable(in); 
     } 

     public MyParcelable[] newArray(int size) { 
      return new MyParcelable[size]; 
     } 
    }; 

    private MyParcelable(Parcel in) { 
     mData = in.readInt(); 
    } 
}