Intereting Posts
Не удалось добавить запись '0' для кэширования localClassSetAnalysis.bin Как сохранить Hashmap для Android, чтобы он был повторно использован при перезапуске приложения с использованием общих настроек? Планирование плагина камеры cordova с прозрачным наложением Для Android требуется уровень соответствия компилятора 5.0 или 6.0. Вместо этого найдено «1.7». Используйте Android Tools> Fix Project Properties В Google API Access можно создать несколько идентификаторов клиентов для одного и того же имени пакета Android? Как ограничить раскрывающееся меню AutoCompleteTextView? Android Video перестает играть после нескольких воспроизведений Ошибка 1, 2147483648 Является ли метод onUpgrade когда-либо называемым? Spring MVC, Thymeleaf & REST AsyncTask загрузка изображения RecyclerView Google AppInvites break build Папка libs не работает в студии Android Программное подключение к другим сетевым операторам Как я могу автоматически активировать активность настроек Bluetooth? Запуск vi в adb под Windows

SearchManager – добавление пользовательских предложений

Я прочитал всю документацию онлайн о создании интерфейсов поиска и добавлении пользовательских предложений … но я все еще не понимаю, как это работает. В документации говорится, что я должен «создать таблицу (например, в SQLiteDatabase) для ваших предложений и форматировать таблицу с необходимыми столбцами». Я предполагаю, что система в конечном итоге заполнит эту таблицу соответствующими предложениями самостоятельно … но какой процесс / класс отвечает за это, и когда будут происходить фактические вставки (до того, как пользователь сделает запрос, после Запрос был сделан пользователем и т. Д.)?

И хотя я SearchView вопрос здесь, если кто-то может прояснить разницу между AutoCompleteTextView и SearchView с пользовательскими предложениями … это было бы потрясающе. AutoCompleteTextView кажется подозрительно прост в реализации по сравнению с SearchView (который требует внесения изменений в класс ContentProvider, вспомогательный класс SQLiteDatabase и т. Д.).

Solutions Collecting From Web of "SearchManager – добавление пользовательских предложений"

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

Нет никаких ограничений на то, как поставщик предложений вычисляет свои предложения. Вы можете искать в веб-запросе базу данных или читать файл. Но ответ на запрос находится в формате таблицы. Если предложения напрямую запрашиваются из базы данных, вы можете использовать курсор, ответивший на запрос базы данных, чтобы доставить результат в методе query () поставщика контента. Если результат вычисляется из одного или нескольких источников, вы можете создать таблицу «на лету» с помощью MatrixCursor.

Строки ответа от поставщика предложений используются механизмом поиска для отображения предложения, они хранятся в таблице. Формат строк выглядит следующим образом:

 private static final String[] COLUMNS = { "_id", SearchManager.SUGGEST_COLUMN_ICON_1, // ID of a drawable (icon) as String SearchManager.SUGGEST_COLUMN_TEXT_1, // main text for suggestion display SearchManager.SUGGEST_COLUMN_TEXT_2, // secondary text for suggestion display SearchManager.SUGGEST_COLUMN_INTENT_DATA, // this could be an URI to access the suggestion as used in an intent with a VIEW action SearchManager.SUGGEST_COLUMN_INTENT_ACTION, // this could be Intent.ACTION_VIEW SearchManager.SUGGEST_COLUMN_SHORTCUT_ID // eg SearchManager.SUGGEST_NEVER_MAKE_SHORTCUT }; 

Поиск описан здесь более подробно: http://developer.android.com/guide/topics/search/index.html