【发布时间】:2016-09-15 11:19:30
【问题描述】:
我正在一个表单上创建一个 AutoCompleteTextView 字段,我可能希望使用来自 CONTACTS 电子邮件地址的匹配选择来填充该字段。
进行一些搜索,我能够在这里找到一些较旧的示例(有很多折旧的代码......没有更新)但是经过一些试验和错误,我能够让它与第一个字符匹配我键入时的电子邮件地址...虽然我没有 100% 了解它是如何工作的。
我真正想做的是让它在存档的电子邮件地址中显示任何匹配项。也就是说,如果我输入gma,我希望它显示:gmartin@xyz.com、gregmaster@yahoo.com、jim@gmail.com、sam@gmail.com 等。
据我了解,我需要在查询中使用 LIKE 命令。但无论我如何格式化,我得到的结果都是一样的……只匹配电子邮件地址的开头。
这是我当前使用 LIKE 尝试的代码......
ArrayList<String> emailAddressCollection = new ArrayList<String>();
ContentResolver cr = getContentResolver();
String[] projection={ContactsContract.CommonDataKinds.Email.DATA};
Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, ContactsContract.CommonDataKinds.Email.ADDRESS + " LIKE '%A%'", null, null);
while (emailCur.moveToNext())
{
String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
emailAddressCollection.add(email);
}
emailCur.close();
String[] emailAddresses = new String[emailAddressCollection.size()];
emailAddressCollection.toArray(emailAddresses);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, emailAddresses);
AutoCompleteTextView actextView = (AutoCompleteTextView)findViewById(idTo);
actextView.setAdapter(adapter);
知道我在这里缺少什么吗?
另外,另一个有点相关的问题,在我的下拉列表中,我想显示匹配的电子邮件地址以及该记录中列出的名称......并在选择时返回电子邮件地址。
这可以使用此代码完成还是我需要查看其他内容?
【问题讨论】:
标签: android android-contacts sql-like autocompletetextview