我正在尝试使用自动完成文本查看手机联系人列表中的名称,因此当用户开始输入名称时,它将显示从其联系人自动完成的建议。 另外,它是在自定义对话框中完成的。
但它不起作用。
以下是相关代码:
AutoCompleteTextView friendName;
case R.id.add_debt_menu:
// custom dialog
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.add_debt_dialog);
dialog.setTitle("Add Debt");
friendName = (AutoCompleteTextView)dialog.findViewById(R.id.name);
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);
while (cursor.moveToNext()){
name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
ArrayList<String> contacts = new ArrayList<>();
contacts.add(name);
}
cursor.close();
ArrayAdapter<String> adapter = new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,contacts);
friendName.setAdapter(adapter);
解决!我用过:
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
所以关键是使用CommonDataKinds。我仍然不知道为什么它不适用于其他方法。