Проблема, похоже, в вашем publishResults
методе. Результаты, полученные из performFiltering
, никогда не применяются к списку объектов внутри адаптера массива. Самый простой способ сделать это - создать новый ArrayAdapter
с отфильтрованными элементами и обновить вид списка.
Поведение списка массивов по умолчанию заключается в фильтрации по префиксу. Если это нормально, вы можете просто вызвать setFilterText
в представлении списка с текстом для фильтрации, не применяя собственную фильтрацию.
Также, в качестве стороны, вы можете переместить ваш Filter newFilter = null;
за пределы вашего метода. В противном случае вы создаете фильтр каждый раз. И не нужно устанавливать ограничение для содержимого etsearch
внутри вашего метода performFiltering
, так как вы запускаете фильтр с текстом из наблюдателя текста, который должен иметь то же строковое значение.