2010-07-06 79 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。

这两个建议将以与应通过相同光标返回的相同方式显示。

如果您发现任何错误,请您如此善意向我汇报?