J'ai un AutoCompleteTextView qui utilise un SimpleCursorAdapter pour filtrer les courriels pour un champ de saisie. Je l'ai fonctionné, bien qu'il y ait quelques commandes deprecated
que je ne suis pas sûr comment retravailler.AutoCompleteTextView avec SimpleCursorAdapter pour les contacts ne renvoyant pas la valeur réelle du curseur
Le seul problème que j'ai est que lorsque je sélectionne une valeur dans la liste fournie, je ne reçois pas l'adresse e-mail sélectionnée, mais quelque chose comme ce qui suit:
[email protected]
Voici le code que j'ai :
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);
Toutes les suggestions sur la façon d'obtenir la valeur réelle sélectionnée pour remplir le AutoCompleteTextView lorsqu'il est sélectionné?
En outre, comme mentionné, les éléments obsolètes sont startManagingCursor
et SimpleCursorAdapter
.