【Android开发API】用户界面 - 搜索配置 - Searchable Configuration

category: Search
建模仿真原文地址:developer.android/guide/topics/search/searchable-config.html
翻译:futurexiong
更新:2012.08.11
为了在Android系统的协助下(把搜索查询传递到Activity中并提供搜索建议项)实现搜索,你的应用必须以⼀个XML文件的形式提供给系统⼀个搜索配置。这⼀页将从搜索配置的语法以及使用上来描述它。更多如何为你的应用实现搜索功能的信息,请从关于Creating a Search Interface的开发指南开始阅读。
远程遥控文件路径: :res/l :Android使用文件名作为资源ID。语法:元素: : : ::定义所有Android系统用于提供辅助搜索的搜索配置。
::属性: ::android:label :::字符串资源。(必须的。)你应用的名称。它应该跟你manifest文件中或者元素
医用呼叫器中android:includeInGlobalSearch为true的时候才对用户可见,在这种情况下,这个标签作为系统搜索设置中的⼀个可搜索项用来辨别你的应用。
::android:hint :::字符串资源。(推荐的。)当搜索框文本区域没有文本输⼊时显示的文本。它提示用户什么内容是可搜索的。为了跟其他Android应用保持⼀致性,你应该用"搜索 <;内容-或者-产品>"这种格式来格式化android:hint的字符串。比如,"搜索歌曲或者艺术家"或者"搜索YouTube"。 ::android:searchMode :::关键字。设置额外的模式来控制搜索的表现。当前可用的模式定义了当自定义建议项获取到焦点时搜索文本该如何被改写。以下的模式值是可接受的: {|
|- ! | Value ! | Description
|- | | "queryRewriteFromText" | | 使
用SUGGEST_COLUMN_TEXT_1这⼀列的值来改写搜索文本。
|- | | "queryRewriteFromData" | style="border-right:1px solid #ccc;border-bottom:1px
solid #ccc; padding:5px 15px;" | 使
用SUGGEST_COLUMN_INTENT_DATA这⼀列的值来改写搜索文本。这应该仅用于
当SUGGEST_COLUMN_INTENT_DATA里面的值对用户的检查和编辑是合适的,通常HTTP URI的就是这样。
aqsh-012|} :::详见Adding Custom Suggestions中改写搜索文本的相关讨论。 ::android:searchButtonText :::字符串资源。显示在搜索按钮上的文本。按钮默认的展示⼀个搜索图标(放⼤镜),这对国际化来说是理想的,所以你不应当使用这个属性来改变按钮的图标,除非按钮执行的行为是搜索以外的东西(比如Web浏览器中的⼀个URI请求)。 ::android:inputType :::关键字。定义了使用的输⼊法的类型(比如软键盘的类型)。对于⼤多数对期望输⼊的文本没有限制的搜索来说,你不需要用到这个属性。在inputType里查看这个属性的合法值。 ::android:imeOptions :::关键字。为输⼊法提供额外的选项。对于⼤多数对期望输⼊的文本没有限制的搜索来说,你不需要用到这个属性。默认输⼊法的执行键值是"actionSearch"(在软键盘上提供⼀个"搜索"按钮来代替回车符)。在imeOptions里查看这个属性的合法值。 ::* 搜索建议项的属性* ::如果你定义了⼀个content provider来生成搜索建议项,你需要定义额外的属性来配置与content provider的通讯。当提供搜索建议项的时候,你需要以下属性的⼀部分: : : ::android:searchSuggestAuthority :::字符串。(提供搜索建议项必须的。)这个值必须跟Android ma
nifest中android:authorities属性提供的鉴权字符串⼀致。 ::android:searchSuggestPath :::字符串。这个路径被用作建议项查询Uri的⼀部分,位于Uri的前缀和authority之后,但在标准的建议项路径之前。只有当你仅用⼀个content provider来处理不同类型的建议项(比如不同的数据类型)时会要用到这个属性,并且当你接收到这些建议项查询的时候你要有方式来区分它们。 ::android:searchSuggestSelection :::字符串。这个值将作为"query"#006600">selectionArgs参数中使用任意非空值来触发查询文本的传递(然后忽略selection参数)。 ::android:searchSuggestIntentAction :::字符串。当用户点击自定义搜索建议项时默认使用的intent action(比如"android.intent.action.VIEW")。如果这个值没有被选中的建议项
覆盖(通过SUGGEST_COLUMN_INTENT_ACTION这⼀列),当用户点击⼀个建议项的时候这个值将会被赋给Intent的action字段。 ::android:searchSuggestIntentData :::字符串。当用户点击自定义搜索建议项时默认使用的intent data。如果这个值没有被选中的建议项覆盖(通过SUGGEST_COLUMN_INTENT_DATA这⼀列),当用户点击⼀个建议项的时候这个值将会被赋给Intent的data字段。 ::android:searchSuggestThreshold :::整型。触发建议项查询的最⼩字符数。仅保证系统在输⼊字符数⼩于这个阀值的情况下不会查询你的content provider。默认值是0。 ::想要了解更多关于以上搜索建议项的属性,Adding Recent Query Suggestions和Adding Custom Suggestions的开发指南。 ::* Quick Search Box属性* ::要让你的自定义搜索建议项对Quick Search
Box可用,你需要以下属性的⼀部分: ::android:includeInGlobalSearch :::布尔值。(对在Quick Search Box里提供搜索建议项来说是必须的。)如果你想让你的建议项被包括在可全局访问的Quick Search Box里,把这个值设为"true"。在你的建议项能在Quick Search Box里显示之前,用户仍然必须在Quick Search Box的设置里面启用你的应用作为⼀个可搜索项。(译者注:就是说设置这个值为"true"的情况下用户还要在Quick Search Box的设置里面勾选上你的应用,这样才能在Quick Search Box里显示你的建议项。)
::android:searchSettingsDescription :::字符串。为你提供给Quick Search Box的搜索建议项提供⼀个简要说明,它会显示在(Quick Search Box设置里面)你应用对应的可搜索项条目中。你的描述应该扼要地描述出什么内容是可搜索的。比如,用“艺术家,唱片,专辑”来描述音乐应用可搜索的内容,或者用“已保存的笔记”来描述记事本应用可搜索的内容。
::android:queryAfterZeroResults :::布尔值。如果你希望对之前返回0个结果的搜索的超集仍然调用你的content provider,设置这个值为"true"。比如你的content provider对"bo"返回0个结果,那么它会对"bob"重新进行查询。如果这个设为"false",在这个单独的会话里超集将会被忽略("bob"不会调用⼀个新的查询)。这仅在搜索对话框的生存期或者使用search widget的activity的生存期中持续(当搜索对话框或者activity重新打开的时候,"bo"将再次查询你的content provider)。默认值是false。 ::* 语音搜索属性* ::要启用语音搜索,你需要以下属性的⼀部分: ::android:voiceSearchMode :::关键字。(对
提供语音搜索功能来说是必要的属性。)用指定的模式启用语音搜索。(设备可能不提供语音搜索功能,在这种情况下这些标志将不起作用。)以下是可接受的模式值: {|
|- ! | Value ! | Description
|- | | "showVoiceSearchButton" | | 如果语音搜索在设备上可用,那么显示⼀个语音搜索的按钮。如果设置了这个模式,那么"launchWebSearch"和"launchRecognizer"两者之⼀也必须同时被设置(用|字符分割开来)。
|- | | "launchWebSearch" | | 语音搜索按钮把用户直接带到⼀个内建的语音web搜索activity。⼤多数应用不需要这个标志,因为它将用户带离了调用搜索的activity。
|- | | "launchRecognizer" | | 语音搜索按钮把用户直接带到⼀个内建的录音activity。这个activity提示用户说话,解码语音文本,讲得到的查询文本转发到搜索activity,就好像用户在search UI输⼊查询文本然后按下搜索按钮⼀样。
|} ::android:voiceLanguageModel :::关键字。语音识别系统应该使用的语言模式。以下是可接受的模式值:
{| |- ! | Value ! | Description
|- | | "free_form" | | 为⼝述的查询使用"自由形式"("free-form")的语音识别。这主要是为英语优化的。这是默认值。
谢宇风
|- | | "web_search" | | 为更短的,类似检索的短语使用网页检索词识别。这种模式支持的语言比"free-form"的更多。 |} :::你也可以
在EXTRA_LANGUAGE_MODEL里查看更多信息。 ::android:voicePromptText :::字符串。显示在语音输⼊框里的附加信息。 ::android:voiceLanguage :::字符串。期望的语言,用Locale里面的字符串常量来表示(比如"de"表示德国或者"fr"表示法国)。只有期望的语言跟Default()的当前值不⼀样的时候才会需要这个属性。 ::android:voiceMaxResults :::整型。强制返回结果的最⼤个数,其中包含用于ACTION_SEARCH intent的主查询的"最佳"结果,这个结果总是会被提供。这个值必须⼤于等于1。使用EXTRA_RESULTS从intent里面获取结果。如果没有提供该值,语音识别程序将决定返回多少个结果。 : ::为搜索action指定⼀个设备的按键和行为。当触摸设备屏幕上的按钮时,搜索action会根据当前查询文本或者获得焦点的建议项来触发⼀个特定的行为。比如联系⼈应用在提供了联系⼈建议项的时候,按下Call按键会提供⼀个搜索action来初始化⼀个通话,通话的对象就是当前获得焦点的联系⼈建议项所对应的联系⼈。 ::不是所有的action键值在任何设备上都是可用的,也不是所有的键值都允许用这种方式来覆盖。比如"Home"键不能被用作action key并且按下它的时候必须返回home界面。同时要确保不要为用于输⼊查询文本的按键定义action key。这从根本上限定了action keys只能
用于拨号键和菜单键。同时也要注意action keys通常不容易被发现,所以你不应该把它们作为核心用户功能提供出来。 ::你必须通过指定android:keycode键值来指定⼀个按键,并且指定其他三个属性中至少⼀个的值来定义搜索action。 ::属性:: ::android:keycode :::字符串。(必须的。)KeyEvent中定义的键值(比如"KEYCODE_CALL"),用来代表你所希望响应的那个action key。这个键值被附加到将被传递到你搜索activity中的ACTION_SEARCH intent中。要查看这个键值,使
用getIntExtra(SearchManager.ACTION_KEY)。不是所有的按键都支持搜索action,因为他们很多都被用作输⼊,导向和系统功能。 ::android:queryActionMsg :::字符串。当用户正在输⼊查询文本时按下action key所发送的action信息。这个值被附加到ACTION_SEARCH intent中,这个intent将会被系统传递到你的搜索activity中去。要查看这个值,使
用getStringExtra(SearchManager.ACTION_MSG)。 ::android:suggestActionMsg :::字符串。当⼀个建议项获得焦点时按下action key所发送的action信息。这个值被附加到intent中,系统将这个intent(使用你为之前为建议项定义的action)传递到你的搜索activity中去。要查看这个值,使用getStringExtra(SearchManager.ACTION_MSG)。这仅用于你所有的建议项都支持这个action key的情况下。如果不是所有建议项都能处理同⼀个action key的话,你应该下面
的android:suggestActionMsgColumn属性替代。 ::android:suggestActionMsgColumn :::字符串。你
content provider中的列名,用于指定当⼀个建议项获得焦点时用户按下action key所发送的对应于该action key的action信息。这个属性能让你在逐个建议项的基础上操控action key,这是因为与使用android:queryActionMsg属性为所有的建议项定义⼀个action信息不同,使用这个属性你content provider每个条目都提供自身对应的⼀个action信息。 :::首先,你必须在你content provider中定义⼀列来让每个建议项都提供⼀个action信息,然后在这个属性中提供这个列名。系统查看你的建议项cursor,使用这个属性提供的字符串到你action信息的那⼀列,然后从cursor中出action信息的字符串。那个被查出来的字符串会被附在系统传递给你的搜索activity的intent(这个intent使用你之前为建议项定义的action)中。要查看这个字符串,使用getStringExtra(SearchManager.ACTION_MSG)。如果选中的建议项对应的数据不存在,那么这个action key将会被忽略。示例: :保存为res/l的XML文件:
贡献者:
iceskysl
压片机模具©eoe移动开发者社区
本文链接: /page/Searchable_Configuration

本文发布于:2024-09-23 10:28:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/229124.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:搜索   建议   提供   文本
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议