Как я могу создать панель поиска, где, в то время как я ввожу результаты, показаны в ListView
в котором я ищу?
Например, у меня есть представление списка с 20 строками. Я нажимаю клавишу поиска, и появляется панель. Я хочу, когда я слова типа 3 или больше поиск начинаю выполнять показ результатов в представлении списка (как фильтр: только показывает строки в списке, что соответствие тому, что я ввожу),
Вы не можете сделать это с помощью строки поиска. Но в списке есть возможность фильтровать по нажатой клавише , как это делается в контактах. Пользователь просто начинает печатать, а затем список фильтруется. Фильтрация на самом деле не похожа на поиск. Если список содержит где-то слово foo, и вы набираете oo, foo будет отфильтровано, но если вы введете fo, оно останется, даже если элемент списка будет вызывать bar foo.
Вам просто нужно включить его:
ListView lv = getListView();
lv.setTextFilterEnabled(true);
Я не знаю, как это сделать, если у вас нет аппаратной клавиатуры. Я использую дроид и начинаю вводить список для фильтрации и отображения только совпадающих результатов.
Лучше всего использовать встроенную панель поиска или SearchManager, переопределив onSearchRequested в действии с возможностью поиска. Вы можете настроить источник данных для поиска, чтобы получить автоматический выпадающий список результатов, или вы можете просто принять ввод от пользователя и выполнить поиск после него. Вот хороший обзор SearchManager - это Плюс есть рабочая демонстрация в проекте API Demos com.example.android.apis.app.SearchQueryResult
@Override
public boolean onSearchRequested() {