尝试从另一个活动获取捆绑时出错

时间:2017-10-12 21:00:47

标签: java android

我正在尝试从其他活动中检索捆绑包但是当我尝试此操作时,我的日志中会出现以下错误: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);

提前致谢!

1 个答案:

答案 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