2011-07-11 105 views
2

我已經使用putExtra()將一些數據從一個活動傳遞到另一個活動。我想創建一個Parcelable實例,但我得到一個空對象。getParcelable()返回空對象

這裏是第一活動的代碼:

i = new Intent(Activity1.this, Activity2.class); 
i.putExtra(com.login_app.Activity1.extra, "100"); 
startActivity(i); 

這裏是第二活動的代碼:

Intent inew = getIntent(); 
Bundle icicle1 = inew.getExtras(); 
// this is just a debug code 
System.out.println(
    icicle1.getSerializable(com.login_app.Activity1.extra).toString()); 
Parcelable p = inew.getParcelableExtra(com.login_app.Activity1.extra); 

這裏對象p是一個空對象。

請告訴我,如果我錯了,或者我需要添加其他東西。我希望這個Parcelable對象被拼合成一個Parcel對象。

回答

5

這是因爲您已經輸入String,但試圖獲得Parcelable。您應該改用getStringExtra

另外,從[getParcelable()][1]Bundle文檔(該功能用於實際從Intent的束獲得額外的):

返回與給定鍵相關聯的值,或爲null如果沒有所需的映射類型爲給定鍵存在,或者空值與鍵明確關聯。

所以你基本上得到null,因爲你有類型不匹配。

+0

謝謝inazuruk ..有幫助 – Sumit

+0

你能告訴我如何創建一個Parcel對象在Parcel中展平嗎? – Sumit

+2

這是一個單獨的問題。如果您的問題沒有答案,請使用[so]上的搜索功能併發佈一個新問題。 –