【问题标题】:android app search button安卓应用搜索按钮
【发布时间】:2009-10-18 13:51:09
【问题描述】:

我一直在尝试让我的应用实现内置的快速搜索,类似于在 ApiDemos 的“app/search/invoke search”中实现的方式。从尝试遵循不同的示例到完全按照 ApiDemos 中的方式复制代码,我已经尝试了所有方法。

我对前者的所有发现都与旧版本的 SDK 有关,而且根本不起作用。至于我可以实际运行并看到在 ApiDemos 中工作的东西,我尝试复制以下内容

com.example.android.apis.app.SearchInvoke.java
com.example.android.apis.app.SearchQueryResults.java
com.example.android.apis.app.SearchSuggestionSampleProvider.java

res/layout/search_invoke.xml
res/layout/search_query_results.xml
res/values/arrays.xml
res/values/strings.xml
res/xml/searchable.xml

... and everything under "Search Samples" in AndroidManifest.xml

此复制为我提供了一个与我在运行 ApiDemos 时所面对的完全相同的视图,但是当我单击搜索按钮时,在快速搜索框中,Android 总是只打开一个浏览器窗口,其中包含 Google 搜索结果对于给定的查询。我根本无法在 ApiDemos 中找到告诉 android 我想使用自己的自定义代码来处理搜索请求的关键组件。

在这件事上我非常感谢一些帮助。在这方面,文档和其他在线资源似乎都非常缺乏。

谢谢。

【问题讨论】:

    标签: android quick-search


    【解决方案1】:

    作为参考,四个月后(天知道有多少次尝试),我找到了我错过的文档部分,它让整个搜索框启动浏览器搜索结果,而不是通过他们到我自己的活动。这一切都归结为发现here的一个小通知:

    请注意,所有用户可见的字符串必须以“@string”引用的形式提供。无法本地化的硬编码字符串将无法在搜索元数据中正常工作。

    【讨论】:

    • 哇,谢谢。这正是解决我的问题的原因——它在我测试时不接受硬编码的字符串值。我只是将它转换为在 strings.xml 中使用 refs,但它不起作用。
    • @David 非常感谢。仅仅因为我有硬编码的字符串,我就被困了一天多。再次感谢。 :)
    【解决方案2】:

    先尝试阅读this。如果这没有帮助,您可以尝试查看我的一本书中的search example——该示例与快速搜索框集成,也许它会为您提供更多线索。

    【讨论】:

    • 嗨。感谢您的评论,但您链接到的资源或您提供的示例代码似乎都不适合我。搜索按钮调用全局搜索 ui,这正是我想要的,但在其中输入任何内容只会产生默认建议,并且点击搜索按钮总是会打开一个 Web 视图。我想要的是捕获搜索按钮的点击,并生成我自己的结果视图。如果我可以让搜索正常工作,我什至不需要建议提供者。当然,这应该是相当可行的......?
    • 不,这是不可行的,除非修改固件,或者编写一个替换的家庭应用程序,其搜索框的行为符合您的要求。
    • 那么,这不就是市场在做什么吗?或 ApiDemos 中的 Search Invoke 演示。它们都是单击设备搜索按钮时出现的搜索示例,当在出现的视图中单击按钮时,它们会生成自己的结果视图,而不是打开带有常规谷歌搜索结果的 web 视图......?
    • 如果其中一个 API 演示满足您的需求,请获取该 API 演示的代码——它在您的 SDK 中。至少在 Android Market 的情况下,这不是快速搜索框,而是他们自己的本地搜索搜索框 AFAICT。
    • 在这种情况下,我可能使用了错误的术语,而本地搜索可能确实是我想要的。无论哪种方式,我都没有找到避免在单击搜索按钮时加载 Web 视图的方法。我已经复制了我在 API Demos 中可能找到的所有内容,但我仍然没有找到让我自己控制搜索结果而不是打开浏览器的关键代码
    【解决方案3】:

    除了commonsware.com提供的例子,你可以看看1.6 SDK的samples目录下的Searchable Dictionary。

    http://developer.android.com/guide/samples/SearchableDictionary/index.html

    【讨论】:

      【解决方案4】:

      我之前错了... SDK 文档在SearchManager 的文档中有详尽的解释,我建议您看一下。此外,正如 CommonsWare 所提到的,blog entry 也是一个很好的资源。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-16
        • 1970-01-01
        • 1970-01-01
        • 2016-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多