마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

주소록의 전화번호 구하는코드인데

0 추천
final String[] projection = new String[] {
      Phone.NUMBER,
      Phone.TYPE,
};

final Cursor phone = mCtx.getContentResolver().query(
      Phone.CONTENT_URI, 
      projection,
      Data.CONTACT_ID + "=?",
      new String[]{String.valueOf(contactId)},
      null);

int count = phone.getColumnCount();
String[] strArr = new String[count];
if(phone.moveToFirst()) {
   int contactNumberColumnIndex = phone.getColumnIndex(Phone.NUMBER);
   int contactTypeColumnIndex = phone.getColumnIndex(Phone.TYPE);
   
   int i = 0;
   while(!phone.isAfterLast()) {
      String number = phone.getString(contactNumberColumnIndex);
      int type = phone.getInt(contactTypeColumnIndex);
      strArr[i] = number;
      i++;
      phone.moveToNext();
   }
   
}

 

위코드는 주소록의 전화번호 구하는코드인데

에러가 있습니다

int count = phone.getColumnCount();

전화번호 갯수구하는부분인데

실제 해당 아이디에대한 전화번호가 3개가 저장되어있는데

count 값이 2 로 나옵니다

그래서 배열갯수가 잘못셋팅되어 에러가 납니다

이거 왜 이런걸까요?

어떻게해결해야될런지...

조언부탁합니다

 

구름처럼달처럼 (5,830 포인트) 님이 2016년 10월 7일 질문

1개의 답변

+1 추천
 
채택된 답변
int count = phone.getColumnCount();

위의 코드는 칼럼갯수를 구하는 거 아닌가요? 레코드 갯수는 phone.getCount() 를 사용해야 하는 것 같은데요.

 

spark (227,830 포인트) 님이 2016년 10월 7일 답변
구름처럼달처럼님이 2016년 10월 8일 채택됨
...