我正在为我的应用程序的本地搜索历史记录指定一个图标,但我没有看到任何可以让我轻松添加的文档。要明确,我正在使用内置的Android搜索API并利用我已实现的SearchRecentSuggestionsProvider。有没有办法为SearchRecentSuggestionsProvider指定图标?
此外,我瞄准API 7级
-Dan
我正在为我的应用程序的本地搜索历史记录指定一个图标,但我没有看到任何可以让我轻松添加的文档。要明确,我正在使用内置的Android搜索API并利用我已实现的SearchRecentSuggestionsProvider。有没有办法为SearchRecentSuggestionsProvider指定图标?
此外,我瞄准API 7级
-Dan
好吧,我不知道这是否是完成我问过最简单的方法,但这里是我是如何做的:
源代码片段:
...
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
final String[] PROJECTION = new String[] {
"_id",
"display1 AS " + SearchManager.SUGGEST_COLUMN_TEXT_1,
"display2 AS " + SearchManager.SUGGEST_COLUMN_TEXT_2,
"query AS " + SearchManager.SUGGEST_COLUMN_QUERY,
android.R.drawable.ic_menu_recent_history + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1,
};
final Uri URI =
Uri.parse("content://" + SearchHistoryProvider.AUTHORITY + "/suggestions");
return getContext().getContentResolver().query(
URI,
PROJECTION,
"display1 LIKE ?",
new String[] {selectionArgs[0] + "%"},
"date DESC");
}
...
如果未设置SearchRecentSuggestionsProvider了上面的投影使用两条线“显示2”应改为“空”或者也许可以完全省略。
如果在URI中省略了“建议”路径,它将不起作用。它必须是'建议',否则你会看到'无效Uri'例外。
我通过挖掘SearchRecentSuggestionsProvider的源代码挖掘了大部分信息。
你尝试在AndroidManifest.xml文件中添加一个图标到提供商节?不知道它是否可以工作,但请参阅http://developer.android.com/guide/topics/manifest/provider-element.html了解有关<provider>
元素属性的完整详细信息。
不幸的是,这并不适合我。 – Dan
我使用了类似的解决方案,但对于所有结果我都得到相同的图标,但我想为所有结果项目制作不同的图标。有关如何实现它的任何想法? – atabek