Я попробовал этот код, чтобы отобразить номера телефонов в флажке внутри списка:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main1);
lv = (ListView) findViewById(R.id.contactList);
Cursor numberCursor = null;
Cursor peopleCursor = getContentResolver().query(ContactsContract
.Contacts.CONTENT_URI,null,null
,null,null);
String [] nb = null ;
String [] Tname = null;
if(peopleCursor.getCount()>0)
{
peopleCursor.moveToFirst();
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, numberCursor,nb,
new int[] {R.id.checkBox});
lv.setAdapter(adapter);
}
}
Но я получаю эту ошибку в logcat, и я ее не понимаю --->
android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0