Исключение из-за нулевого указателя при попытке проверить действительный контакт с номером телефона - PullRequest
0 голосов
/ 30 июля 2010

Эта часть моего кода проверяет, чтобы увидеть, что, когда пользователь нажимает на контакт, у контакта действительно есть номер телефона, в противном случае отображается сообщение, и больше ничего не делается.

Я не понимаю, откуда исходит исключение для моего нулевого указателя ....

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», и он также говорит, что это ошибка исключения нулевого указателя в этой строке:

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

ранее в коде я объявляю stringNumber для инициализации в null. Я думал, что поскольку первая часть if переходит в false, она даже не проверяет вторую часть (отсюда, я думаю, и возникает ошибка).

1 Ответ

1 голос
/ 30 июля 2010

Если stringNumber равно нулю, то stringNumber.equals(... выдаст исключение нулевого указателя.

Используйте вместо него if ((stringNumber != null) ....

...