ContactsContractからメールアドレスを取得しようとしていますが、空の文字列しか取得できません。名前と番号は正常に機能していますが、メールアドレスは機能していません。
私は混乱して何日もこれを解決しようとしていますが、コードの何かを見逃したり、これを解決する方法がわからない場合は、何が問題なのかわかりません。
アプリケーションのこの部分には、ContactsContractからのすべての名前のListViewがあります。ListViewで名前を選択する場合、コードは、ContactsContractから名前、番号、および電子メールアドレスを取得する必要があります。
仕事を続けられるように助けていただければ幸いです。おそらくこれを解決するためのより良い方法があるので、変更する方法を教えてください!ありがとう!
トーストメッセージがwhileループ内に表示されないのでwhile(cursorEmail.moveToFirst()){....、メールカーソルに何か問題があると思います!?空っぽのようです!?
public class Activity_3 extends Activity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_3);
    listView = (ListView) findViewById(R.id.contactList);
    String[] projection = { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
            ContactsContract.CommonDataKinds.Phone.NUMBER,
            ContactsContract.CommonDataKinds.Phone._ID };
    Cursor cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, null, null, null);
    // From column
    String[] fromColumn = { ContactsContract.Contacts.DISPLAY_NAME };
    // To view
    int[] toView = { R.id.contactItem };
    startManagingCursor(cursor1);
    ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.activity_3, cursor1, fromColumn, toView);
    listView.setAdapter(adapter);
    listView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
            String[] projection = { ContactsContract.CommonDataKinds.Phone._ID, 
                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
                    ContactsContract.CommonDataKinds.Phone.NUMBER,
                    };
            Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, null, null, null);
            cursor.moveToPosition(position);
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String contactNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            String pos = Integer.toString(position);
            String contactEmailAddress = "?";   
            //Email
            Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=" + contactId, null,  null);
            while(emails.moveToNext()){
                contactEmailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                Toast.makeText(Activity_3.this, contactEmailAddress, Toast.LENGTH_SHORT).show();
            }
            emails.close();
            Toast.makeText(Activity_3.this, pos + " " + contactId + " " + contactName + " " + contactNumber + " " + contactEmailAddress, Toast.LENGTH_SHORT).show();
        }
    });
}
}