2013-01-08 5 views
1

코드에서 무엇이 잘못되었는지 이해할 수 없습니다. myAddressUniqueness에서 오류가 발생했습니다. 이유는 모르겠다. 전에 문자열 데이터 형식으로 시도했지만 동일한 오류가 발생했습니다. 그것은 java.null 예외를 말하는 것입니다.arraylist의 값을 초기화하십시오.

ArrayList<String> myAddressUniqueness = null; 
    String name = "hello"; 

    if (indexBody < 0 || !cursor.moveToFirst()) 
     return; 

    smsList.clear(); 

    do { 
     // int cursorPostion = cursor.getPosition(); 

     String address; 
     String msgStr = cursor.getString(indexBody); 
     String senderNumber = cursor.getString(indexAddr); 
     Log.d("Name : ", senderNumber); 
     // String name = cursor.getString(cursor 
     // .getColumnIndex(PhoneLookup.DISPLAY_NAME)); 
     // Log.d("Name : ",name); 

     if (name != null) { 
      address = name; 
     } else { 
      address = senderNumber; 
     } 
     Log.d("Address: ", address); 
     flag = 1; 
     //Log.e("Number: ", addressUniqueness.length + ""); 

     for (j = 0; j < myAddressUniqueness.size(); j++) { 
      if (myAddressUniqueness.contains(address)) { 
       flag = 0; 
       break; 
      } 

     } 

     if (flag == 1) { 
      myAddressUniqueness.add(new String(address)); 
      i++; 

      String str = "Sender: " + address + "\n"; 
      smsList.add(str); 

     } 

     // TODO Auto-generated catch block 

    } while (cursor.moveToNext()); 
+0

어떤 줄에서 NullPointerException이 발생하는지 알아볼 수 있습니까? –

+0

문제가 해결되었습니다 :). 그것은 어리석은 생각이다. 나는 arraylist를 초기화하지 않았다. – Developer

답변

0

당신은 그것을 사용하기 전에 myAddressUniqueness = new ArrayList<String>()에 의해 myAddressUniqueness를 인스턴스화해야합니다.

2
당신은 그것을 null으로 초기화가

ArrayList<String> myAddressUniqueness = new ArrayList<String>();

에 선언을 변경

. 이렇게하면 인스턴스가 생성되고 데이터를 추가 할 수 있습니다.

관련 문제