我試圖在同一個應用程序的全局搜索中實現recent suggestions和custom suggesions。他們都在提供者中使用相同的路徑,所以似乎不可能爲他們返回不同的結果。例如,最近在快速搜索框中搜索建議和實際搜索結果。如何處理快速搜索框結果和最近的搜索建議?
任何想法如何做到這一點?
我試圖在同一個應用程序的全局搜索中實現recent suggestions和custom suggesions。他們都在提供者中使用相同的路徑,所以似乎不可能爲他們返回不同的結果。例如,最近在快速搜索框中搜索建議和實際搜索結果。如何處理快速搜索框結果和最近的搜索建議?
任何想法如何做到這一點?
看看searchable config文檔,它看起來應該能夠使用不同的android:searchSuggestPath值來消除這兩者之間的歧義。
這是可能的,雖然它需要一點點解決方法。我還沒有完全在多個平臺上進行測試,但這裏是我的實現:Collectionista SearchRecentSuggestionsContentProvider.java
由於最近的建議是最嚴格的,你必須包裝它的供應商與自定義建議所需的提供商,並使最近的建議電話的傳遞。
重要的是你明白你不必重複searchable.xml
,也不需要清單中的任何塊。您使用相同的權限。
此外,最近的建議限制您使用android:searchSuggestSelection=" ?"
,因此您必須在提供商中處理自定義建議查詢。您可能需要使用android:searchSuggestPath
,因此請理解最近提出的建議的查詢是否到達該Uri,並且需要重新查詢路徑更少的Uri。
這兩個建議將以與應通過相同光標返回的相同方式顯示。
如果您發現任何錯誤,請您如此善意向我彙報?
只是爲了確定。您希望在從應用程序搜索中使用時顯示最近的建議,但在從主屏幕的快速搜索框中使用它時顯示真實結果? – Macarse 2010-07-11 23:43:57
是的,確切地說。這正是我想要的。 – alexanderblom 2010-07-12 06:23:04