Кнопка поиска приложения для Android

Я пытался заставить мое приложение реализовать встроенный быстрый поиск, подобный тому, как это делается в ApiDemos "app/search/invoke search". Я перепробовал все, от попыток следовать различным примерам, до копирования кода в точности так, как это делается в ApiDemos.

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

com.example.android.apis.app.SearchInvoke.java
com.example.android.apis.app.SearchQueryResults.java
com.example.android.apis.app.SearchSuggestionSampleProvider.java

res/layout/search_invoke.xml
res/layout/search_query_results.xml
res/values/arrays.xml
res/values/strings.xml
res/xml/searchable.xml

... and everything under "Search Samples" in AndroidManifest.xml

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

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

Благодарю.

4 ответа

Решение

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

Обратите внимание, что все видимые пользователем строки должны быть предоставлены в виде ссылок "@string". Жестко запрограммированные строки, которые не могут быть локализованы, не будут правильно работать в метаданных поиска.

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

В дополнение к примерам, предоставленным commonsware.com, вы можете найти словарь для поиска в каталоге с примерами 1.6 SDK.

http://developer.android.com/guide/samples/SearchableDictionary/index.html

Раньше я ошибался... в документации SDK есть подробное объяснение в документах для SearchManager, на которое я предлагаю вам взглянуть. Кроме того, как упомянул CommonsWare, запись в блоге также является хорошим ресурсом.

Другие вопросы по тегам