Intereting Posts
Как отправить HTML-адрес электронной почты Возможно ли передать пользовательский аргумент на рынок Android, чтобы мое приложение получало его при первом запуске? Преобразование нормального массива Java или ArrayList в Json Array в android Ошибка при действии ActionBarSherlock SearchView SyncAdapter-onPerformSync не имеет доступа в Интернет Android NFC Intents не запускают мою деятельность Есть ли какая-либо реализация StAX для Android? Пользовательский макет уведомлений Android с помощью RemoteViews Android: как я могу вставить RecyclerView внутри CardView? Try catch всегда возвращает null Как долго запускается Android-эмулятор? Вам нужно закрыть / запустить, если каждый раз, когда вы меняете код Java? Пример кинжала, построенный через eclipse, не выполняется: «Пожалуйста, убедитесь, что для этого модуля была запущена генерация кода». Процент заполнения макета Android Android EPSON therm Печать данных с веб-просмотра при нажатии? Если принтер не найден? Стандартные цвета для Android-материалов

Как переопределить фильтр в ArrayAdapter от android?

У меня есть ArrayAdapter, обернутый вокруг ArrayList пользовательских объектов. Я хотел бы написать собственный фильтр для этого адаптера, чтобы при вызове getListAdapter().getFilter().filter("abc") список будет фильтроваться произвольным преобразованием «abc».

Я думал, что просто попытаюсь переопределить ArrayAdapter.getFilter() , но для этого требуется повторная реализация частного ArrayAdapter.ArrayFilter который требует доступа к кучу личных экземпляров ArrayAdapter.

Каков самый простой способ сделать это?

Solutions Collecting From Web of "Как переопределить фильтр в ArrayAdapter от android?"

Сначала рассмотрим исходный код ArrayAdapter .

Вы заметите, что у него есть личное поле mFilter которое используется только в методе getFilter() . Итак, просто ArrayAdapter и переопределите getFilter() чтобы вернуть Filter .

Лучше всего реализовать свой Filter же, как ArrayFilter : как закрытый внутренний класс, поэтому он имеет доступ к закрытым полям ArrayAdapter .

Дайте мне знать, если этого достаточно для завершения задания.