Benny292 Benny292 - 4 months ago 15
Android Question

NullPointerException from getExtras()

I'm creating an intent to transfer data from one activity to another like this :

Intent intent = new Intent(this, ActivityHighScore.class);
intent.putExtra("USERNAME", username);
intent.putExtra("PLAYERMOVES", playerMoves);

this.startActivity(intent);


Then i want to check if all of this data exists as the activity starts, as it can be started from other sources without this data being set. Im using this statement:

Bundle bundle = getIntent().getExtras();

if (!bundle.getString("USERNAME").equals(null) && bundle.getInt("PLAYERMOVES") != 0){
String username = bundle.getString("USERNAME");
int playerMoves = bundle.getInt("PLAYERMOVES");
addHighScore(username, playerMoves);

}


But this causes a null pointerexception and I'm entirely sure how. I thought I was getting to grips with Strings and .equals(), but I think its that... Any help would be greatly appreciated. Thanks.

Answer

Replace

Bundle bundle = getIntent().getExtras();

    if (!bundle.getString("USERNAME").equals(null) && bundle.getInt("PLAYERMOVES") != 0){
        String username = bundle.getString("USERNAME");
        int playerMoves = bundle.getInt("PLAYERMOVES");
        addHighScore(username, playerMoves);

    } 

with

 if (getIntent().getStringExtra("USERNAME") != null && (getIntent().getIntExtra("PLAYERMOVES", 0) != 0){
        String username = bundle.getString("USERNAME");
        int playerMoves = bundle.getInt("PLAYERMOVES");
        addHighScore(username, playerMoves);

  }