2012-08-31 113 views
3

我想將可分段對象傳遞給另一個活動。 所以我實現了一個parcelable類來完成這個任務。 我編碼:即使傳遞對象爲空,getParcelable也會返回null

Intent intent = new Intent(mainactivity.this, SecondActivity.class); 
Object[] object = new Object(); 
intent.putExtra("Object ", object); 
startActivity(intent); 

,並在第二個活動我編碼:

Object[] object = (Object[]) getIntent().getExtras().getParcelable("object"); 

當我通過對象的意圖,它不是空。 雖然,當我在第二個活動中得到它爲空。 你有什麼建議嗎?提前致謝!

回答

7

更改此:

Object object = (Object) getIntent().getExtras().getParcelable("object"); 

要這樣:

Object object = getIntent().getExtras().get("Object"); 

getParcelable如果您正在使用putParcelable或插入的代碼發送部分使用putExtra一個Parcelable對象應僅被使用。

P.S.還介意鍵名對象對象的差異

+0

是的,我知道。你的解決方案,但測試,沒有工作。 – FrankBr

+1

您是否修復了鑰匙上的** O **區別? – waqaslam

+1

我注意到你使用數組更新了你的問題。你不能用簡單的術語來玩數組。嘗試實現Parcelable到你的對象,然後把parcelableArray捆綁 – waqaslam

2

您可以在來電者只需使用:

Intent i = new Intent(EditActivity.this, ViewActivity.class); 
i.putExtra("myObj", p); 
startActivity(i); 

在接收器:

Bundle b = i.getExtras(); 
Person p = (Person) b.getParcelable("myObject"); 

希望這有助於你

+0

我看到類似於你的答案 - 「i.putExtra(」return-data「,p);'和接收者'b.getParcelable(」data「);'和它的工作。兩個鍵不一樣的地方怎麼可能?我想知道。 –

相關問題