В настоящее время я изучаю, как создавать приложения для Android Studio, и я хотел создать AutoCompleteTextView, чтобы предлагать контакты, с помощью специального адаптера для моего класса Contact.
Однако у меня возникла проблема сФильтр: метод "executeFiltering" останавливается перед возвратом без каких-либо ошибок.Следовательно, параметр «results» из метода «publishResults» имеет свой атрибут member «values» null.
Это мои методы:
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
List<Contact> suggestions = new ArrayList<>();
if(constraint == null || constraint.length() == 0){
Log.i("ContactFiltering", "performFiltering: contrain null or 0");
suggestions.addAll(contactListFull);
}
else{
String filterPattern = constraint.toString().toLowerCase().trim();
Log.i("ContactFiltering", "performFiltering: filterPattern '" + filterPattern + "'");
for(Contact contact: contactListFull){
if(contact.name.toLowerCase().contains(filterPattern)){
suggestions.add(contact);
}
}
}
Log.i("ContactFiltering", "performFiltering: suggestions size '" + suggestions.size() + "'");
results.values = suggestions;
results.count = suggestions.size();
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
clear();
addAll(new ArrayList<Contact>());
addAll((List) results.values);
notifyDataSetChanged();
}
Журнал "(executeFiltering: подсчет размера'"ideas.size () +"' ")" никогда не появляется в LogCat.
Кроме того, со счетчиком я видел, что цикл for не достигает конца моего списка контактов:
ContactFiltering: executeFiltering: filterPattern 'q'
ContactFiltering: executeFiltering: contactListFull size '75'
ContactFiltering: executeFiltering: счетчик инициализации для 0
ContactFiltering: executeFiltering: counter = 1
ContactFiltering: executeFiltering: counter = 2
ContactFiltering: executeFiltering: counter = 3
ContactFiltering: executeFiltering: ....
ContactFiltering: executeFiltering: counter = 28
// Ничего другого.
Надеюсь, кто-нибудь поможет мне Пока, Натан.