NullPointerException from getExtras()

13,844

Solution 1

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);

  } 

Solution 2

Well, I had a similar problem. In my case the NullPointerException happened when I checked if my bundle.getString() was equal to null.

Here is how I solved it, in my case:

Intent intent = getIntent();        
if(intent.hasExtra("nomeUsuario")){
    bd = getIntent().getExtras();
    if(!bd.getString("nomeUsuario").equals(null)){
        nomeUsuario = bd.getString("nomeUsuario");
    }
}
Share:
13,844
Benny292
Author by

Benny292

Updated on June 04, 2022

Comments

  • Benny292
    Benny292 almost 2 years

    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.