gpt4 book ai didi

android - 将参数传递给自定义搜索建议 ContentProvider

转载 作者:搜寻专家 更新时间:2023-11-01 09:11:32 24 4
gpt4 key购买 nike

我有一个有效的自定义搜索建议类(通过 http://developer.android.com/guide/topics/search/adding-custom-suggestions.html )。它目前返回一种类型的信息 - “产品名称”。

我已经在我的应用程序中添加了一些额外的 Activity (屏幕),这样如果一个人在产品页面上,开始搜索应该返回来自“产品名称”的结果,但如果他们在另一个 Activity 中,我会喜欢拉“制造商名称”的搜索建议。

我看到了Accessing appSearchData bundle from ContentProvider ,但自定义搜索建议提供程序扩展了 ContentProvider,它不适用于答案

Bundle b = intent.getBundleExtra(SearchManager.APP_DATA);

此 Bundle 可用于搜索结果类,但不可用于内容提供者。

如何最好地将参数(“产品”或“制造商”)传递给搜索建议内容提供者?

最佳答案

这似乎不是一个理想的解决方案,但我有同样的需求,我发现我可以通过向处理搜索建议的 ContentProvider 的子类添加一个公共(public) ivar 或方法来完成工作。在开始搜索之前,您可以根据需要配置您的提供商。您可以像这样从 Activity 中访问提供者实例:

ContentProviderClient client = getContentResolver().acquireContentProviderClient("my.searchsuggestionprovider");
MyProviderClass provider = (MyProviderClass) client.getLocalContentProvider();

现在您可以使用 provider.setParameter("product") 或您需要的任何内容进行配置。构建游标后,您可能需要将参数重置为默认值或其他内容。

编辑:事实证明这是不切实际的,至少在我的情况下是这样,因为每次键入字符时都会使用 query() 调用内容提供程序。相反,我采用了类似于 set-search-hint-dynamically 中描述的解决方法。 .通过创建替代的“可搜索”XML 定义和 Activity ,您可以更改在 query() 中传递给内容提供者的 URI,添加路径组件以提供您需要的额外参数或上下文。

关于android - 将参数传递给自定义搜索建议 ContentProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com