안드로이드 개발 질문/답변
(글 수 45,052)
Intent i = new Intent(Intent. ACTION_GET_CONTENT);
i.setType("vnd.android.cursor.item/phone_v2");
startActivity(i);
위와 같은 소스는 인텐트로 해서 전화번호부를 불러오는 부분입니다.
이렇게 해서 전화번호부가 나오면 항목에 제가 친구(Ex : 홍길동 : 010-777-1004) 를 선택하면
바로 토스트 메세지로 출력되게 하고싶거든요~~
그래서 찾아보니.. 아래와 같은 소스를 사용해 봤습니다
이렇게 하니 순차적으로 제 전화번호부에 등록된 백여개의 번호가 순차적으로 토스트 메세지로 뜨게되는데요~ㅜ
제가 선택한 번호만 캐취할수 있는 방법에 대한 조언을 듣고싶습니다.
i.setType("vnd.android.cursor.item/phone_v2");
startActivity(i);
위와 같은 소스는 인텐트로 해서 전화번호부를 불러오는 부분입니다.
이렇게 해서 전화번호부가 나오면 항목에 제가 친구(Ex : 홍길동 : 010-777-1004) 를 선택하면
바로 토스트 메세지로 출력되게 하고싶거든요~~
그래서 찾아보니.. 아래와 같은 소스를 사용해 봤습니다
Cursor PhoneNumberCursor = mContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
if(null!=PhoneNumberCursor)
{
try{
while(PhoneNumberCursor.moveToNext())
{
name = PhoneNumberCursor.getString(1);
name = PhoneNumberCursor.getString(PhoneNumberCursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER));
//String hasPhone =PhoneNumberCursor.getString(PhoneNumberCursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
//if(Integer.parseInt(name)==1)
//{
//name = PhoneNumberCursor.getString(PhoneNumberCursor.getColumnIndex(ContactsContract.Contacts.CONTENT_URI.));
Toast.makeText(getApplicationContext(), name ,Toast.LENGTH_SHORT).show();
//break;
//}
}
}finally {
PhoneNumberCursor.close();
}
}이렇게 하니 순차적으로 제 전화번호부에 등록된 백여개의 번호가 순차적으로 토스트 메세지로 뜨게되는데요~ㅜ
제가 선택한 번호만 캐취할수 있는 방법에 대한 조언을 듣고싶습니다.
2011.02.17 12:23:43
Cursor PhoneNumberCursor = mContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); Toast.makeText(getApplicationContext(), ""+PhoneNumberCursor,Toast.LENGTH_SHORT).show(); PhoneNumberCursor.close();이렇게하면 startActivity로 해도 값을 체크할수 있던데요 이건 Cursor를 이용해서 데이터를 접근하는것 같은데...
위소스처럼해도 값을 불러올수 있지 않을까요?




결과를 못받아오면 그 이후는 일단 아무것도 못하겠죠...
startActivityForResult 로 결과를 받아오게끔 하시고,
결과를 어떻게 받는지도 검색하시기 바랍니다.
결과를 받는다면 보여주신 전화번호부 검색 소스 1, 2번 줄에 where절만 넣어주시면 됩니다.