0

こんにちは、ボタンを押したときに edittext で連絡先の詳細を取得する必要があります。しかし、連絡先が 1 つしかなく、複数の連絡先がある場合は 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

で while 条件を変更しますwhile(!cursor.isAfterLast())

于 2012-07-04T06:34:19.687 に答える
0

すべての連絡先と情報が照会される連絡先情報にアクセスできます

于 2012-07-04T05:53:20.487 に答える