我正在尝试从其他活动中检索捆绑包但是当我尝试此操作时,我的日志中会出现以下错误:java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Bundle.getInt(java.lang.String)' on a null object reference
我尝试检索并显示包的代码部分是:
Bundle bundlefrankrijk = getIntent().getExtras();
int scorefrankrijk = bundlefrankrijk.getInt("finalScoreFrankrijk");
TextView highscoreLabelfranrkijk = (TextView) findViewById(R.id.highscorefrankrijk);
SharedPreferences settingsfrankrijk = getSharedPreferences("GAME_DATA", Context.MODE_PRIVATE);
int highScorefrankrijk = settingsfrankrijk.getInt("HIGH_SCORE", 0);
if (scorefrankrijk > highScorefrankrijk) {
highscoreLabelfranrkijk.setText("High Score : " + scorefrankrijk);
SharedPreferences.Editor editor = settingsfrankrijk.edit();
editor.putInt("HIGH_SCORE", scorefrankrijk);
editor.commit();
} else {
highscoreLabelfranrkijk.setText("High Score : " + highScorefrankrijk);
}
这就是我将意图发送到当前活动的方式:
Intent i = new Intent(QuizActivityFrankrijk.this,
QuizResultaatFrankrijk.class);
Bundle bundlefrankrijk = new Bundle(0);
bundlefrankrijk.putInt("finalScoreFrankrijk", mScoreFrankrijk);
i.putExtras(bundlefrankrijk);
QuizActivityFrankrijk.this.finish();
startActivity(i);
提前致谢!
答案 0 :(得分:0)
如果您可以发布代码以查看如何将附加内容发送到当前活动,那么更好,对于我在此处看到的内容,错误就在此行中:
Bundle bundlefrankrijk = getIntent().getExtras(); // is returning null object
当你想要:
int scorefrankrijk = bundlefrankrijk.getInt("finalScoreFrankrijk"); // NullPointerException throwed
因为你的软件包从一开始就是空的,你应该检查你是否正确发送了额外的意图,请使用方法:
mIntent.putExtra("key", intValue)
并检查您收到的是这样的:
if (getIntent().getExtras() != null){
getIntent().getExtras().getInt("key");}
或者就像这样:
if (getIntent().getExtras() != null){
getIntent().getExtras().get("key");}
请记住,如果key
在某些字符中有所不同,则会返回NULL。
请阅读此内容以获取更多信息:https://developer.android.com/reference/android/content/Intent.html