Поиск Android перечисляет при вводе

Как я могу создать панель поиска, где, в то время как я ввожу результаты, показаны в ListView в котором я ищу?

Например, у меня есть представление списка с 20 строками. Я нажимаю клавишу поиска, и появляется панель. Я хочу, когда я слова типа 3 или больше поиск начинаю выполнять показ результатов в представлении списка (как фильтр: только показывает строки в списке, что соответствие тому, что я ввожу),

23
задан N J 6 July 2015 в 09:03
поделиться

2 ответа

Вы не можете сделать это с помощью строки поиска. Но в списке есть возможность фильтровать по нажатой клавише , как это делается в контактах. Пользователь просто начинает печатать, а затем список фильтруется. Фильтрация на самом деле не похожа на поиск. Если список содержит где-то слово foo, и вы набираете oo, foo будет отфильтровано, но если вы введете fo, оно останется, даже если элемент списка будет вызывать bar foo.

Вам просто нужно включить его:

ListView lv = getListView();
lv.setTextFilterEnabled(true);

Я не знаю, как это сделать, если у вас нет аппаратной клавиатуры. Я использую дроид и начинаю вводить список для фильтрации и отображения только совпадающих результатов.

13
ответ дан 29 November 2019 в 01:38
поделиться

Лучше всего использовать встроенную панель поиска или SearchManager, переопределив onSearchRequested в действии с возможностью поиска. Вы можете настроить источник данных для поиска, чтобы получить автоматический выпадающий список результатов, или вы можете просто принять ввод от пользователя и выполнить поиск после него. Вот хороший обзор SearchManager - это Плюс есть рабочая демонстрация в проекте API Demos com.example.android.apis.app.SearchQueryResult

@Override
public boolean onSearchRequested() {
1
ответ дан 29 November 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: