一、前言:
Android为程序的搜索功能提供了统一的搜索接口,search dialog和search widget。
search dialog只能为于activity窗口的上方,search widget可以位于任何位置。
search dialog和search widget都会向我们的searchable activity发送消息(主要是搜索关键字)。
通过这种方式,可以为任何activity加入search dialog和search widget,系统可以启动合适的activity来处理搜索并显示结果。
search dialog和search widget的其他属性如下:
A:声音搜索。
B:根据最近的搜索结果,给出搜索建议。
C:根据我们程序的实际搜索结果,给出搜索建议。
注1:search widget在 Android 3.0或更高版本才可用
注2:searchable activity才是真正执行搜索的。
二、基本知识
在开始实现搜索功能之前,请决定使用search dialog,还是search widget.
他们的搜索功能特性都有一样,但是他们还有微小区别。
A,search dialog是一个被系统控制的UI组件。但他被用户激活的时候,它总是出现在activity的上方,如图一所示。
B,Android系统负责处理search dialog上所有的事件,当用户提交了查询,系统会把这个查询请求传输到我们的searchable activity,
让searchable activity在处理真正的查询。当用户在输入的时候,search dialog还能提供搜索建议。
C,search widget是SearchView的一个实例,你可以把它放在你的布局的任何地方。
D,默认的,search widget和一个标准的EditText widget一样,不能做任何事情。
但是你可以配置它,让android系统处理所有的按键事件,把查询请求传输给合适的activity,可以配置它让它像search dialog一样提供search suggestions。
E,search widget在 Android 3.0或更高版本才可用.search dialog没有此项限制
提示:
如果你想自己在search widget处理所有的用户输入,请使用各种回调函数和监听接口,具体参照SearchView。
图一:
当用户在search dialog或search widget中执行一个搜索的时候,系统会创建一个Intent,并把查询关键字保存在里面,
然后启动我们在AndroidManifest.xml中声明好的searchable activity,并把Intent传送给它。
实现一个可以搜索的程序,主要需要以下几个部份:
(1),search dialog or widget的配置文件。
配置一个XML文件用于配置search dialog 或widget的设置。对于search dialog,该配置文件的名字一般约定为searchable.xml
(2),searchable activity。
searchable activity用于接收搜索关键字,并进行数据搜索和显示搜索结果。
(3),搜索条。search dialog 或search widget
* The search dialog
默认的,search dialog是隐藏。当我们按下了SEARCH键或在程序中调用onSearchRequested(),它将出现在屏幕的上方.
* a SearchView widget
使用search widget的时候,你可以把该搜索条放在我们activity的任何地方。
Instead of putting it in your activity layout, however, it's usually more convenient for users as an action view in the Action
Bar.
三、创建配置文件searchable.xml
配置文件说明了search dialog 或widget的一些属性。包括UI,以及suggestions 和voice search behave的一些属性。
该文件一般约定为searchable.xml并位于res/xml/目录下。
searchable.xml必须以<searchable>element
作为根节点,且至少定义一个属性。
比如,示例1:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_label"
android:hint="@string/search_hint" >
</searchable>
android:label是唯一必须定义的属性。它指向一个字符串,它应该是应用程序的名字。
实际上该label也只有在search
suggestions for Quick Search Box可用时才可见。
这时该label在系统设置的Searchable项的列表中可见。
虽然android:hint属性不是必须,但是还是推介总是定义它。它是search
box用户输入前输入框中的提示语。
<searchable> 还有其他的一些属性。如果不需要search suggestions 和voice search的话,大多数的属性是不需要的。
关于searchable.xml更多内容请参考:http://developer.android.com/guide/topics/search/searchable-config.html
<wbr style="line-height:25px"></wbr>
相关推荐
一个简单的searchable配置实例,通过它来了解searchable搜索框的配置
Laravel开发-eloquent-searchable 一个服务层,为您的雄辩模型的搜索提供支持。WIP当前仅支持ElasticSearch。
Laravel开发-eloquent-simple-searchable 一个雄辩的简单的搜索范围。
可搜索是Laravel 4.2+和Laravel 5.0的特征,它为雄辩模型添加了一个简单的搜索功能。 Searchable允许您在表中执行搜索,为该表及其关系指定每个字段的优先级。 并非针对大型搜索进行了优化,但是有时您只需要使其...
django-searchable-select 一个更好,更快的多选小部件,其中包含针对Django的建议 该项目正在寻找维护者! 请打开一个问题以请求写权限。 这是什么? 该插件替代了Django管理页面上的标准多项选择。 您可以将其...
这是一个仅用于练习目的的小应用程序。 设置 克隆仓库 进入应用目录 $ bundle install $ rake db:setup $ rake db:test:prepare 练习 该应用程序有两种模型: User和Address 。 您会注意到,大多数(如果不是全部...
组编前言21 世纪是一个变幻莫测的世纪,是一个催人奋进的时代,科学技术飞速发展,知识更替曰新月异。希望 、困惑 、机遇 、 挑战 ,随时随地都有可能出现在每一个
这是一个简单的 AngularJS 指令,用于过滤移动列表,突出显示所选元素并向用户显示有关列表状态的信息 使用样板 离子版本具有更多功能,例如使用离子滚动恢复到先前选择的列表中的项目。 克隆项目并安装依赖,然后...
基本上,是一个常规的“选择”字段,您可以在其中指定要搜索的资源,并且不需要任何“关系”。 这意味着,您也可以在数据库的其他JSON字段中使用它。 安装 作曲家 composer require sloveniangooner/searchable-...
语言:English (United States) 整理网络数据 ...但是通常我们需要根据其内容找到一个页面。 可搜索的历史记录使搜索和浏览已访问页面的内容成为可能。 所有数据都存储在本地。 不与外部或第三方建立连接。
可搜索压缩这只是我的一个小想法。 严格来说是概念证明。 自然,灵感来自硅谷这个概念问题: 大多数现代压缩依赖于字典编码器,它依赖于不断更新的“字典”,其编码结果取决于历史(字典中的所有代码都是从输入数据...
一个 jQuery 插件,它扩展了普通的下拉(选择)元素以供搜索。
本文采用授权用户和存储服务器先后对关键词加密的方式提出了一个高效的基于连接关键词的可搜索加密方案,使得授权用户能够利用连接关键词的陷门搜索加密文档。在确定性Diffie-Hellman问题假设下,证明了方案的安全性...
可搜寻的 一个允许列表可搜索的jQuery插件。 当前版本1.0.0 根据MIT许可发布 去做 添加文件
可搜索的注释 浏览器内记笔记应用程序,旨在轻松搜索过去的条目。 团队 产品负责人:Kiri Strack-Grose...在浏览器中打开一个指向localhost:3030的标签,然后开始使用! 要求 节点0.10.x 快递4.13.3 弹性搜索 角度的
jQuery可筛选下拉框美化插件是一款带搜索框的jQuery下拉框美化插件searchable下载。
MuPDF is a lightweight... Example code for navigating interactive links and bookmarks, encrypting PDF files, extracting fonts, images, and searchable text, and rendering pages to image files is provided.
SearchView是一个搜索框控件,样式也挺好看的。这次解析主要围绕android.support.v7.widget包下的SearchView(API >= 7),android.widget.SearchView支持API >= 11, 另外有个android.support.v4.widget....
一个适合于win7的快速文件查找工具,第一次扫描可能需要30~40s,之后在文件没有更新的情况下可以在3s内快速找到。
Android Searchable Spinner An android dropdown widget which allows to easily filter huge list of options Demo Usage Add the SearchableSpinner widget to your main layout file and provide an app:list ...