我正在开发一个 android 项目,我正在尝试使用 AutoCompleteEditText 并绑定联系人的 ArrayAdapter。但我在返回一系列联系人时遇到问题。
下面是我用来检索联系人和显示名称的代码。
public ArrayList<String> getPhoneNumbersAndContactNames()
{
ArrayList<String> contacts = new ArrayList<String>();
try
{
ContentResolver contentResolver = context.getContentResolver();
Uri uri = Data.CONTENT_URI;
String[] projection = new String[] {PhoneLookup._ID, PhoneLookup.DISPLAY_NAME, PhoneLookup.NUMBER};
String selection = "*";
Cursor cursor = contentResolver.query(uri, projection, selection, null, null);
if (cursor.moveToFirst())
{
contacts.add(cursor.getString(cursor.getColumnIndexOrThrow(PhoneLookup.DISPLAY_NAME)));
}
}
catch (SQLiteException ex)
{
Log.d("Database All Contacts Exception", ex.toString());
}
catch (Exception ex)
{
Log.d("Get All Contacts Exception", ex.toString());
}
return contacts;
}
在上面的代码中,我得到了异常:
IllegalArgumentException: Invalid column number
下面是我尝试将数组列表绑定到自动完成编辑文本的方式。
txtPhoneNumberOrContact = (AutoCompleteTextView)findViewById(R.id.call_blacklist_txtPhoneNumberContactName);
ArrayList<String> contacts = common.getPhoneNumbersAndContactNames();
ArrayAdapter<String> contactAdapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_activated_1,
contacts);
txtPhoneNumberOrContact.setAdapter(contactAdapter);
我无法弄清楚为什么在尝试检索要添加到 ArrayList 的联系人列表时出现异常。
感谢您的任何帮助,您可以提供。