2

我正在编写一个应用程序,它将使用 Java Mail 外部库发送电子邮件。我搜索了一周关于如何向用户显示电子邮件地址建议的问题,例如在 Gmail 中显示的建议。

任何帮助都会得到帮助!

4

4 回答 4

1

获取电子邮件列表并使用 autocompleteTextView 在您键入时显示它们。

为文本框设置一个适配器:

ArrayAdapter<String> namesAdapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_dropdown_item_1line, names);
searchBox.setAdapter(namesAdapter);

searchBox.setOnItemClickListener(new OnItemClickListener() {

       public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
            String email = searchBox.getText().toString(); //or use the position to reference the email address you want.

        });
}
于 2012-06-23T13:48:53.470 回答
1

据我所知,Gmail 使用 Gmail 地址簿来提供建议。对于您的建议,您可以使用手机的通讯录,如果您已将它们与您的 Gmail 地址簿同步,它们也可以在通讯录中找到。

希望这可以帮助!如果您需要更具体的内容,请随时询问。

于 2012-06-23T13:49:15.780 回答
0

好的,经过一番挖掘,这就是我发现的。获取有关自动完成 TextView 的答案,添加以下内容,您就会得到我想要的东西。

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
    while (cursor.moveToNext()) { 
        String contactId = cursor.getString(cursor.getColumnIndex( 
                ContactsContract.Contacts._ID)); 
        String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
        if (Boolean.parseBoolean(hasPhone)) { 
            // You know it has a number so now query it like this
            Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); 
            while (phones.moveToNext()) { 
                String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER));                 
            } 
            phones.close(); 
        }

        Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); 
        while (emails.moveToNext()) { 
            // This would allow you get several email addresses 
            String emailAddress = emails.getString( 
                    emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
        } 
        emails.close(); 
    }
    cursor.close();
于 2012-07-15T19:08:18.453 回答
-1

“Smartr Contacts” http://smartrcontacts.com/是一款适用于 Gmail 和 Android 和 iPhone 的优秀应用程序,它将同步您的所有联系人并合并他们的电子邮件、电话等,然后您也许可以从 dbase 调用您想要的电子邮件。

于 2012-07-04T07:51:15.217 回答