Я нашел другой способ:
Метод convertSelectionToString(Object selectedItem)
в AutoCompleteTextView может быть переопределен подклассами для обеспечения пользовательских преобразований.Таким образом, настройка метода toString()
не требуется.
Это, как мне кажется, имеет то преимущество, что Фильтр может возвращать не только список строк, но и список пользовательских объектов, которые могутиспользоваться getView(int position, View convertView, ViewGroup parent)
адаптера для создания "более богатых" предложений.
Очевидным недостатком является то, что он требует создания подкласса AutoCompleteTextView для каждого типа Filterresult, метод toString () которого не должен изменяться.
@Override
protected CharSequence convertSelectionToString(Object selectedItem) {
if(selectedItem instanceof User){
User u = (User) selectedItem;
return u.getUsername();
} else {
return super.convertSelectionToString(selectedItem);
}
}
Есть комментарии по этому поводу?