2010-07-30 5 views
0

Cette partie de mon code vérifie que lorsque l'utilisateur clique sur un contact, le contact a en réalité un numéro de téléphone, sinon un message s'affiche et rien D'autre est fait.Exception du pointeur NULL lors de la recherche d'un contact valide avec un numéro de téléphone

Je suis confus quant à l'endroit où ma nulle exception de pointeur vient ....

Uri contactData = data.getData(); 
    Cursor c = managedQuery(contactData, null, null, null, null); 
    if (c.moveToFirst()) 
    { 
     String stringName = c.getString(c.getColumnIndexOrThrow(People.NAME)); 
     if(c.getColumnIndex(People.NUMBER)!= -1) 
     { 
     stringNumber = c.getString(c.getColumnIndexOrThrow(People.NUMBER)); 
     } 
     if((!stringNumber.equals(null)) && (stringNumber.length() >= 12)) 
     { 
     name.setText(stringName); 
     number.setText(stringNumber); 
     } 
     else 
     { 
     Context context = getApplicationContext(); 
     CharSequence text = "That contact has an invalid phone number."; 
     int duration = Toast.LENGTH_SHORT; 

     Toast toast = Toast.makeText(context, text, duration); 
     toast.show(); 
     } 

    } 

mon erreur est « l'échec livrer résultat resultinfo », et il dit aussi qu'il est une erreur d'exception NullPointer dans cette ligne :

if((!stringNumber.equals(null)) && (stringNumber.length() >= 12)) 

auparavant, je déclare stringNumber à initialiser à null. Je pensais que puisque la première partie de l'if est faux, elle ne vérifie même pas la seconde partie (d'où je pense que l'erreur vient).

Répondre

1

Si stringNumber est null, alors stringNumber.equals(... déclenchera une exception de pointeur NULL.

Utilisez plutôt if ((stringNumber != null) ....

+0

wow, merci de le signaler. Je l'ai changé pour stringNumber == null et cela fonctionne. – steve

Questions connexes