AutoCompleteTextView with SimpleCursorAdapter for Contacts 不返回光标实际值
AutoCompleteTextView with SimpleCursorAdapter for Contacts not returning cursor actual value
我有一个 AutoCompleteTextView,它使用 SimpleCursorAdapter 来过滤输入字段的电子邮件。我有它的工作,虽然有一些 deprecated
我不确定如何返工的命令。
我遇到的唯一问题是,当我从所提供的列表中 select 一个值时,我没有收到电子邮件地址 selected,而是如下所示:
android.content.ContentResolver$CursorWrapperInner@13a08d9c
这是我的代码:
final AutoCompleteTextView edt_Contact = (AutoCompleteTextView)findViewById(idTo);
ContentResolver cr = getContentResolver();
String[] projection={ContactsContract.CommonDataKinds.Email._ID,ContactsContract.CommonDataKinds.Email.ADDRESS};
Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, null, null, null);
startManagingCursor(cursor);
String[] from = new String[] { ContactsContract.CommonDataKinds.Email.ADDRESS};
int[] to = new int[] { android.R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, from, to);
adapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
return getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] {},
ContactsContract.CommonDataKinds.Email.ADDRESS + " LIKE '%" + constraint + "%'",
null, null);
}
});
edt_Contact.setAdapter(adapter);
关于在 selected 时如何获取实际 selected 值以填充 AutoCompleteTextView 的任何建议?
此外,如前所述,已弃用的项目是 startManagingCursor
和 SimpleCursorAdapter
。
找到解决方案,我将其发布在这里以供有类似情况的其他人使用
我需要添加以下内容
adapter.setStringConversion(1);
我在上面例子的最后一行之前添加了它。这改变了
的结果
android.content.ContentResolver$CursorWrapperInner@13a08d9c
到所选的电子邮件地址。
对于使用 MultiAutoCompleteTextView
做同样事情的任何人来说也只是一个提醒,此代码也适用于此......只需更改添加 Multi在 AutoCompleteTextView
之前添加您选择的 .setTokenizer
。
我有一个 AutoCompleteTextView,它使用 SimpleCursorAdapter 来过滤输入字段的电子邮件。我有它的工作,虽然有一些 deprecated
我不确定如何返工的命令。
我遇到的唯一问题是,当我从所提供的列表中 select 一个值时,我没有收到电子邮件地址 selected,而是如下所示:
android.content.ContentResolver$CursorWrapperInner@13a08d9c
这是我的代码:
final AutoCompleteTextView edt_Contact = (AutoCompleteTextView)findViewById(idTo);
ContentResolver cr = getContentResolver();
String[] projection={ContactsContract.CommonDataKinds.Email._ID,ContactsContract.CommonDataKinds.Email.ADDRESS};
Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, null, null, null);
startManagingCursor(cursor);
String[] from = new String[] { ContactsContract.CommonDataKinds.Email.ADDRESS};
int[] to = new int[] { android.R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, from, to);
adapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
return getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] {},
ContactsContract.CommonDataKinds.Email.ADDRESS + " LIKE '%" + constraint + "%'",
null, null);
}
});
edt_Contact.setAdapter(adapter);
关于在 selected 时如何获取实际 selected 值以填充 AutoCompleteTextView 的任何建议?
此外,如前所述,已弃用的项目是 startManagingCursor
和 SimpleCursorAdapter
。
找到解决方案,我将其发布在这里以供有类似情况的其他人使用
我需要添加以下内容
adapter.setStringConversion(1);
我在上面例子的最后一行之前添加了它。这改变了
的结果android.content.ContentResolver$CursorWrapperInner@13a08d9c
到所选的电子邮件地址。
对于使用 MultiAutoCompleteTextView
做同样事情的任何人来说也只是一个提醒,此代码也适用于此......只需更改添加 Multi在 AutoCompleteTextView
之前添加您选择的 .setTokenizer
。