2015-06-26 49 views
-2

當我在一個活動創建一個新的意圖:安卓:意向#getExtras()總是空,沒有什麼幫助

Intent myIntent = new Intent(this, TargetActivity.class); 
// apply hacks explained in above stackoverflow answers 
System.out.println(myIntent.getExtras()) 

(此代碼奠定在默認空白活動)

Intent#getExtras()總是null,因此Intent#putExtras(...)導致立即NullPointerException。然而,啓動Intent並沒有任何問題。

我讀過有關此主題的所有類似計算器的帖子:

我已經試過所有,但他們都不似乎有任何影響。

任何人都可以請提供一個解決方案,以簡單地啓動一個非空附加組件,其中始終工作

另外,有沒有其他的方式來提供額外的信息,以乾淨,不泄漏的意圖?

+0

'因此意圖#putExtras(...)導致立即NullPointerException'。我不這麼認爲。當你第一次調用putExtras' – njzk2

+0

時,'Intent'的源代碼會檢查null並初始化Extras。你期望什麼?您在向意圖添加任何數據之前調用intent.getExtras .. –

+0

您發佈的這些鏈接似乎都不直接適用於僅將一個額外Intent從一個活動傳遞到另一個活動。試試這個:http://stackoverflow.com/questions/2091465/how-do-i-pass-data-between-activities-in-android/7325248#7325248 –

回答

0

好的,我發現了這個問題。謝謝@DanielNugent指出意向處理的規範答案。

的問題是:當我做

myIntent .putExtra("myVar", myVar); 

myVarnull

我的愚蠢我沒有仔細檢查和恐慌,把不知何故愚蠢的Android,這確實導致立即NullPointerException!如果你不相信我,請自己嘗試。

@ njzk2:謝謝,我沒有意識到這一點。