我的int變量在我的Parcelable對象中沒有正確讀寫。 我正在將我的對象從一個活動傳遞給另一個活動,但是一旦我通過並閱讀它,int變量就不一樣了。如何在Parcelable對象中讀取/寫入int?
繼承人我的代碼。
PARCELABLE對象:
class someObject implements Parcelable
int something;
int something2;
//normal constructor
...
public someObject(Parcel in){
this.something = in.readInt();
this.something2 = in.readInt();
}
public void writeToParcel(Parcel dest, int flags){
dest.writeInt(something);
dest.writeInt(something2);
}
//creator and other parcel stuff
...
//mutators for int variables
...
如何我通過它在活動1:
//instantiate someObject
...
Intent intent = new Intent(activity1.this, activity2.class);
intent.putExtras("stuff", someObject);
傳遞給活性2:構造和活動中
onCreate(Bundle blah){
Bundle b = getIntent.getExtras();
someObject some = b.getParcelable("stuff");
}
我輸出的東西,something2我也通過它。他們是不同的價值觀,我做錯了什麼?
我在我的parcelable對象類中有其他字符串成員變量,他們似乎工作。只有2個輸入不能正常工作。
你是說'當你創建一個新的'someObject' something'不同的是,當你收到你的'活性2#的onCreate()'方法的對象?不是說'something'與'something2'不同,對吧? – Nate
的確,我將一些東西和東西2傳遞給activity1中的原始構造函數,然後嘗試在activity2中檢索它。但是,活動1中的某些東西!=活動2中的某些東西。相同的東西2 – Instinct
你顯示的代碼看起來很好。也許別的地方有什麼東西搞砸了?當你把東西命名爲'something'和'something2'時,很容易出現剪切和粘貼錯誤。也許一個*胖手指*錯誤? – Nate