我正在编写一个应用程序,它将使用Java Mail外部库发送电子邮件。我搜索了一周,了解如何向用户显示电子邮件地址建议,例如Gmail中显示的建议。
任何帮助都是适当的!
答案 0 :(得分:1)
获取电子邮件列表,并使用autocompleteTextView在您键入时显示它们。
将适配器设置为textBox:
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.
});
}
答案 1 :(得分:1)
据我所知,Gmail使用Gmail AddressBook作为建议。对于您的建议,您可以使用手机的通讯录,如果您已将其与Gmail地址簿同步,则可以在通讯录中找到它们。
希望这有帮助!如果您需要更具体的内容,请随时询问。
答案 2 :(得分:0)
“更智能的联系人”http://smartrcontacts.com/是一个很好的应用程序,适用于Gmail,Android和iPhone,可以同步所有联系人n合并他们的电子邮件tel mob等,然后你可以调用你想要的dbase电子邮件。
答案 3 :(得分: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();