所以我在这里努力将一个活动的值传递给另一个活动。我已经尝试了所有的东西并且已经在这里寻找其他地方了,但是我发现的一切都没有用,或者与我的问题无关。
我正在实例化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
答案 0 :(得分:3)
private Intent i = getIntent(); //在类标题中声明
仅供参考,当时没有意图,因此您无法使用getIntent()
。相反,在onCreate()
。
答案 1 :(得分:0)
你必须首先检查你传递的Intent不是null,如:
if(i.getExtras()!=null)
{
tempScore = i.getExtras().getString("PASSED_SCORE");
}