Как добавить выпадающий список рядом с полем ввода поиска в Android? - PullRequest
7 голосов
/ 31 марта 2011

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

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

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

image

I would like to click on the books and then get some sort of menu to e.g. select "words", "headings" as search mode.

Update: I am not looking for the QuickAction dialog itself, but rather how to attach something to the books icon that reacts on touch, so that I could attach the QuickAction or a new activity or ... And I want to use the standard Android Search Dialog as described in http://developer.android.com/guide/topics/search/search-dialog.html

Ответы [ 4 ]

2 голосов
/ 22 апреля 2011

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

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

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

2 голосов
/ 01 апреля 2011

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

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

1 голос
/ 21 апреля 2011

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

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

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

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

В каждом приложении, доступном для окна быстрого поиска, есть запись встраница настроек поиска элементов.Запись содержит название приложения и краткое описание содержимого, которое можно найти в приложении, и сделать его доступным для предложений в окне быстрого поиска.Чтобы определить текст описания для вашего приложения с возможностью поиска, добавьте атрибут android: searchSettingsDescription в свою конфигурацию с возможностью поиска.Например:

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

Атрибуты окна быстрого поиска

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

android: includeInGlobalSearch Boolean.(Требуется для предоставления предложений поиска в окне быстрого поиска.) Установите значение «true», если вы хотите, чтобы ваши предложения были включены в глобально доступное окно быстрого поиска.Пользователь по-прежнему должен включить ваше приложение в качестве элемента поиска в настройках поиска системы, прежде чем ваши предложения появятся в окне быстрого поиска.android: searchSettingsDescription String.Содержит краткое описание предложений поиска, которые вы предоставляете в поле быстрого поиска, которое отображается в записи элементов поиска для вашего приложения.Ваше описание должно кратко описывать контент для поиска.Например, «Исполнители, альбомы и дорожки» для музыкального приложения или «Сохраненные заметки» для приложения «Блокнот».android: queryAfterZeroResults Boolean.Установите значение «true», если хотите, чтобы поставщик контента вызывался для надмножеств запросов, которые в прошлом не давали результатов.Например, если ваш поставщик контента возвратил нулевые результаты для «bo», его следует указать для «bob».Если установлено значение «false», надмножества игнорируются для одного сеанса («bob» не вызывает запрос).Это действует только в течение срока действия диалогового окна поиска или действия при использовании виджета поиска (при повторном открытии диалогового окна или действия поиска «bo» снова обращается к поставщику контента).Значением по умолчанию является false.

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

1 голос
/ 20 апреля 2011

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

Вот учебник , который должен помочь вам в этом.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...