我希望有一个带有用户联系人姓名的自动完成文本框。我的代码如下。
private void getContactNames()
{
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
_contactAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line);
while (cursor.moveToNext())
{
int nameIdx = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
String tmp = cursor.getString(nameIdx);
_contactAdapter.add(tmp);
}
}
设置适配器:
AutoCompleteTextView contactName = (AutoCompleteTextView) findViewById(R.id.contactName);
contactName.setAdapter(_contactAdapter);
当我这样做时,适配器会在其中包含所有联系人姓名(238 个联系人)。但是,当我开始在文本框中输入内容时,不会显示自动完成功能。
有趣的是,当我测试它时:
String[] ab = new String[] {"aaaaa", "bbbbb"};
_contactAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,ab);
在文本框中输入时会显示“aaaaa”和“bbbbb”。
有任何想法吗?
谢谢,
汤姆
*编辑
只是想我会跟进。似乎确实是大量的联系人阻止了它的出现。有什么办法可以解决这个问题?