0

嗨,当我按下按钮时,我需要在edittext中获取联系方式。但是当我只有一个联系人并且如果它有多个联系人时,它会显示一个execption。这是我的代码&我不知道是什么我应该添加它吗?如果有人知道,请提供帮助。谢谢 Adv。

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 

            while (cursor.moveToNext()) {
                String contactId = cursor.getString(cursor.getColumnIndex( 
                       ContactsContract.Contacts._ID)); 



                  Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId , null, null); 
                  startManagingCursor(phones); 
                  while (phones.moveToNext()) { 
                      String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                  e2.setText(phoneNumber);
                  } 

               //}

            Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); 
            startManagingCursor(emails); 
            while (emails.moveToNext()) { 
               // This would allow you get several email addresses 
               String emailAddress = emails.getString( 
               emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
               e3.setText(emailAddress);
            } 

            Cursor street = getContentResolver().query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, 
                    null,
                    ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = " + contactId, null, null); 
            startManagingCursor(street); 
            while (street.moveToNext()) { 
                String streetname=street.getString(street.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
                e1.setText(streetname);
            }
            phones.close(); 
            emails.close(); 
            street.close();
            cursor.close(); 
4

2 回答 2

0

Change your while condition in while(!cursor.isAfterLast()).

于 2012-07-04T06:34:19.687 回答
0

您可以访问联系人信息,其中会查询所有联系人和信息

于 2012-07-04T05:53:20.487 回答