TextView text = (TextView) findViewById(R.id.text);
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,null,null,null,"display_name");
int ididx = cursor.getColumnIndex(ContactsContract.Contacts._ID);
int nameidx = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
while (cursor.moveToNext()) {
// 전화 번호는 서브 쿼리로 조사해야 함.
String id = cursor.getString(ididx);
Cursor cursor2 = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[]{id}, null);
int numidx = cursor2.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
// 전화의 타입에 따라 여러 개가 존재한다.
ArrayList<String> strList = new ArrayList<String>();
while (cursor2.moveToNext()) { // 들어온 num이 같으면 하나로 인식해야 한다.
String num = cursor2.getString(numidx).replace("-", "");
if(num.length() >= 2 && num.trim().substring(0,2).equalsIgnoreCase("01")){
if(!strList.contains(num)){
strList.add(num);
text.append(cursor.getString(nameidx)+" : "+strList.get(strList.size()-1));
text.append("\n");
}
}
}
cursor2.close();
}
cursor.close();
현재 이렇게 코딩을 한 상태입니다.
그런데 친구가 별로 없으면 괜찮은데,
친구가 많으면 너무 느려지더라구요.
while문이 두개라서그런가....
어떻게 하는게 좋을까요 ㅠ?