我试图在同一个应用程序的全局搜索中实现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