Вам необходимо создать провайдера контента, который доставит ваши собственные предложения на основе запроса, который до сих пор вводился в окне поиска.В вашем 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 // e.g. SearchManager.SUGGEST_NEVER_MAKE_SHORTCUT
};
Поиск описан здесь более подробно: http://developer.android.com/guide/topics/search/index.html