Как добавить выпадающий список рядом с полем ввода поиска в Android?

в общесистемном поиске на моем HTC Desire (Froyo) я вижу небольшое выпадающее слева поле ввода поиска, которое позволяет выбрать, где я хочу искать (все, веб-приложения).

Как я могу реализовать этот в приложении моего? В учебнике по поиску на сайте разработчика Google это не рассматривается.

Итак, в сценарии, подобном следующему, взятому из документов Android,

Я хотел бы нажать на книги, а затем получить какое-то меню, например, выберите "слова", "заголовки" в качестве режима поиска.

обновление: Я не ищу сам диалог QuickAction, а скорее как прикрепить что-то к значку книги, который реагирует на прикосновение, чтобы я мог прикрепить QuickAction или новое действие или ... И я хочу использовать стандартный диалог поиска Android, как описано вhttp://developer.android.com/guide/topics/search/search-dialog.html

4 ответов


вы не можете изменить диалоговое окно поиска системы. Поэтому, если вы хотите, чтобы настройки, такие как создание раскрывающегося меню, появлялись, когда пользователь касается значка, вам придется реализовать свой собственный диалог. Это сделало бы ваш поиск нестандартным, поэтому я бы не советовал.

однако, если я не могу отговорить вас от этого, вы можете увидеть, как реализован встроенный диалог поиска Android здесь:

В Android 3.x это становится немного проще с введением класса SearchView.


Это просто пользовательский вид, который отображается, когда вы нажимаете эту кнопку с причудливой анимацией.

Это не имеет ничего общего с поисковой системой как таковой. Вы просто показываете пользовательский макет (с причудливой анимацией, если хотите) и устанавливаете значение, нажав на один из значков. Вот и все.


Я думаю, что то, что вы ищете, называется "Диалог quickaction".

здесь учебник что вы должны быть хорошо на вашем пути.

Обновлено по вопросу asker (вставка комментария):

а, понятно. ну как-то вам нужен идентификатор значка, чтобы реализовать onclicklistener(). вы можете застрять, просто идя с виджетом поиска и реализуя большинство с нуля. Или, возможно, с диалогом поиска, реализованным и запущенным, используйте hierarchyviewer, чтобы увидеть, имеет ли значок идентификатор. Может быть, Вам повезет,и у него будет уникальный. У меня пока нет идей.


эти параметры (и их значки) определяются списком доступных для поиска элементов в настройках android (Настройки->Поиск->доступные для поиска элементы, по крайней мере, в моем телефоне). Если вы хотите добавить действие поиска в это меню, посмотрите на это:

http://developer.android.com/guide/topics/search/adding-custom-suggestions.html#QSB

включение предложений на устройстве

когда ваше приложение настроено на представить предложения быстрый поиск Box, он фактически не включен предоставление предложений в Quick Search Коробки, по умолчанию. Это пользователь выбор, включать ли предложения из вашего приложения в Quick окно поиска. Чтобы включить поиск предложения из вашего приложения, пользователь должен открыть "элементы для поиска" (в Настройки > Поиск) и включить применение в качестве элемента для поиска.

каждое приложение, которое доступно для Поле быстрого поиска имеет запись в Страница настроек элементов для поиска. Этот запись включает имя применение и краткое описание какой контент можно найти в приложения и доступны для предложения в поле быстрого поиска. К определите текст описания для вашего приложение для поиска, добавления android: searchSettingsDescription атрибут для поиска конфигурация. Для пример:

http://developer.android.com/guide/topics/search/searchable-config.html

быстрый поиск атрибутов окна

чтобы сделать ваши пользовательские варианты поиска доступно окно быстрого поиска, вы нужны следующие атрибуты:

android: includeInGlobalSearch Логический. (Требуется для предоставления предложений поиска в Quick Search Коробка.) Установите значение "true", если вы хотите предложения быть включенным в глобально доступное окно быстрого поиска. Пользователь все равно должен включить приложение как элемент для поиска в настройки системного поиска перед вашим предложения появятся в Quick окно поиска. android: searchSettingsDescription Строка. Содержит краткое описание предложений поиска что вы предоставляете в поле быстрого поиска, которая отображается в поисковиках запись элементов для вашего приложения. Ваш описание должно кратко описывать этот контент, который доступен для поиска. Для пример" исполнители, альбомы и треки" для приложения "музыка" или "Спас Примечания" приложения "Блокнот". android: queryAfterZeroResults Логический. Установите значение "true", если требуется вызвать поставщика содержимого для суперсетов запросов, которые имеют возвращаются нулевые результаты в прошлом. Для пример, если поставщик содержимого возвращенные нулевые результаты по запросу "bo", it должен быть requiried для "Боба". Если установлено для "false" суперсеты игнорируются для сингл сессия ("Боб" не делает вызвать функцию requery). Это длится только для жизнь диалога поиска или жизнь деятельности при использовании виджет поиска (при появлении диалога поиска или активность снова открывается, запросы "bo" ваш контент-провайдер снова). Этот значение по умолчанию-false.

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