我正在爲我的應用程序的本地搜索歷史記錄指定一個圖標,但我沒有看到任何可以讓我輕鬆添加的文檔。要明確,我正在使用內置的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