麻烦通过Intent将值传递给新活动

时间:2014-02-20 19:17:08

标签: java android eclipse android-intent

所以我在这里努力将一个活动的值传递给另一个活动。我已经尝试了所有的东西并且已经在这里寻找其他地方了,但是我发现的一切都没有用,或者与我的问题无关。

我正在实例化intent并使用Extras传递值。我正在使用Eclipse,它不会在IDE中出现任何错误。 根据LogCAT,它是一个NullExceptionPointer错误被抛出,因为我正在使用意图的getIntExtra()方法。

以下是主要活动的代码:

int tempScore = GUESS_COUNT;
Intent intent = new Intent(getApplicationContext(), SubmitScore.class);
intent.putExtra("PASSED_SCORE", tempScore);
startActivity(intent);

以下是新活动的代码:

private Intent i = getIntent(); //declared in the class header
tempScore = i.getIntExtra("PASSED_SCORE", 999); //exists inside of a private method for the class 
//(ALSO: THIS tempScore is a private int variable localized to only this class, so that's not the problem)

当它尝试将getIntExtra()返回值存储到tempScore时,它会抛出NullPointerException错误。含义:它试图在没有值的地方拉出一个值。 它不应该至少推动999作为默认值吗?为什么错误呢?此外,为什么价值没有被推到新的活动?在此先感谢您的帮助。 JRad

2 个答案:

答案 0 :(得分:3)

  

private Intent i = getIntent(); //在类标题中声明

仅供参考,当时没有意图,因此您无法使用getIntent()。相反,在onCreate()

中声明它

答案 1 :(得分:0)

你必须首先检查你传递的Intent不是null,如:

if(i.getExtras()!=null)
{
    tempScore = i.getExtras().getString("PASSED_SCORE");
}