尝试检查与电话号码的有效联系时,空指针异常

时间:2010-07-30 18:22:37

标签: android null pointers contacts

我的代码的这一部分会检查当用户点击某个联系人时,该联系人实际上有一个电话号码,否则会显示一条消息,而不会执行任何其他操作。

我对我的空指针异常来自哪里感到困惑....

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

     }

我的错误是“提交结果RESULTINFO失败”,并且它还说这是此行中的nullpointer异常错误:

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

在代码的前面,我声明stringNumber初始化为null。我认为,由于if evals的第一部分为false,它甚至不会检查第二部分(我认为错误来自哪里)。

1 个答案:

答案 0 :(得分:1)

如果stringNumber为null,则stringNumber.equals(...将抛出空指针异常。

改为使用if ((stringNumber != null) ...