Кнопка поиска приложения для 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, запись в блоге также является хорошим ресурсом.