Curseur personnalisé au texte avec AutoCompleteTextView
-
11-10-2019 - |
Question
J'ai créé une vue personnalisée en étendant AutoCompleteTextView (avec une fonction spécialisée appelée setCursorAdapter). Je fournir un SimpleCursorAdapter et l'ajout d'un FilterQueryProvider. J'utilise cela pour une liste de numéros où j'ai besoin la possibilité de rechercher partout dans le numéro pour un match.
public void setCursorAdapter(final Uri uri, final String key) {
Cursor c = getContext().getContentResolver().query(uri,
new String[] { "_id", key }, null, null, key);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(getContext(),
android.R.layout.simple_dropdown_item_1line, c,
new String[] { key }, new int[] { android.R.id.text1 });
this.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
((SimpleCursorAdapter) getAdapter()).getFilterQueryProvider()
.runQuery(s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
adapter.setFilterQueryProvider(new FilterQueryProvider() {
@Override
public Cursor runQuery(CharSequence constraint) {
Cursor c = getContext().getContentResolver().query(uri,
new String[] { "_id", key },
key + " LIKE '%" + constraint + "%'", null, key);
return c;
}
});
setAdapter(adapter);
}
Tout fonctionne parfaitement, jusqu'à ce que je choisis la valeur de la baisse de baisse. La valeur que je reçois dans la fenêtre EditText: android.content.ContentResolver $ CursorWrapperInner @ ...
Comment puis-je éviter cela et mon (numérique) texte affiché correctement.
Merci
La solution
Résolu: SimpleCursorAdapter.converToString (curseur) - I passé outre cette fonction pour extraire la valeur
.Merci