2010-07-06 78 views
11

我試圖在同一個應用程序的全局搜索中實現recent suggestionscustom suggesions。他們都在提供者中使用相同的路徑,所以似乎不可能爲他們返回不同的結果。例如,最近在快速搜索框中搜索建議和實際搜索結果。如何處理快速搜索框結果和最近的搜索建議?

任何想法如何做到這一點?

+0

只是爲了確定。您希望在從應用程序搜索中使用時顯示最近的建議,但在從主屏幕的快速搜索框中使用它時顯示真實結果? – Macarse 2010-07-11 23:43:57

+0

是的,確切地說。這正是我想要的。 – alexanderblom 2010-07-12 06:23:04

回答

1

看看searchable config文檔,它看起來應該能夠使用不同的android:searchSuggestPath值來消除這兩者之間的歧義。

0

這是可能的,雖然它需要一點點解決方法。我還沒有完全在多個平臺上進行測試,但這裏是我的實現:Collectionista SearchRecentSuggestionsContentProvider.java

由於最近的建議是最嚴格的,你必須包裝它的供應商與自定義建議所需的提供商,並使最近的建議電話的傳遞。

重要的是你明白你不必重複searchable.xml,也不需要清單中的任何塊。您使用相同的權限。

此外,最近的建議限制您使用android:searchSuggestSelection=" ?",因此您必須在提供商中處理自定義建議查詢。您可能需要使用android:searchSuggestPath,因此請理解最近提出的建議的查詢是否到達該Uri,並且需要重新查詢路徑更少的Uri。

這兩個建議將以與應通過相同光標返回的相同方式顯示。

如果您發現任何錯誤,請您如此善意向我彙報?