연락처의 전화 번호를 표시하고 싶습니다. 나는 아무 일도 발생하지 에뮬레이터에서 내 코드를 실행,하지만 난 내 스마트 폰에서 실행할 때이연락처 contentProvider가 빈 커서를 반환합니다.
android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
코드 메신저와 함께 작업 로그 캣 ---->에서이 오류를 발견하는 경우
Cursor peopleCursor =
getContentResolver().query(ContactsContract.Contacts.CONTENT_URI
,null, null,null, null);
String [] nb = new String[peopleCursor.getCount()];
String [] Tname = new String[peopleCursor.getCount()];
if(peopleCursor.getCount()>0){
peopleCursor.moveToFirst();
Cursor numberCursor;
for(int i=0;i<peopleCursor.getCount();i++)
{
//get number
numberCursor=
getContentResolver().query(ContactsContract.
CommonDataKinds.Phone.CONTENT_URI, new String[]
{ContactsContract.CommonDataKinds.Phone.NUMBER}
,ContactsContract.CommonDataKinds.Phone._ID+"="+peopleCursor
.getString(peopleCursor.getColumnIndex(ContactsContract.Contacts._ID))
, null,null);
numberCursor.moveToFirst();
String number=numberCursor.getString(numberCursor
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
nb[i]=number;
//get name
String name=peopleCursor.getString(numberCursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Tname[i]=name;
peopleCursor.moveToNext();
}
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.contact_entry, peopleCursor,nb
, new int[] {R.id.checkBox});
lv.setAdapter(adapter);
}
}
입니다
어떤 해결책을주십시오?
검색어에 아무런 결과가 없으므로 빈 커서가 사용자에게 반환됩니다. 커서가없는 곳에서 정보를 가져 오기 때문에 예외가 발생합니다. 빈 API가 왜 돌아 오는지 알기 위해 연락처 API에 익숙하지 않습니다. – FoamyGuy