2015-06-26 29 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:谢谢,我没有意识到这一点。