认知 android.app.SearchManager

Android高手过招之浮动搜索框(SearchManager) 该建议在定义菜单项的时候,Andriod 已经默认提供了一些资源,开发者可以使用android.R.drawable.ic_search_category_default作为菜单项的icon,同时使用SearchManager.MENU_KEY作为快捷键。换言之,当用户执行了搜索命令以后,搜索界面就要呈现给用户。最后:上面讲到了将最近的搜索值添加到搜索建议中,但却没有提到如果清理搜索建议中的值,与保存相似,SearchRecentSuggestion对象提供了一个clearHistory()方法。 阅读详情

SearchManager 的作用是提供对系统搜索服务的访问。要获取到对 Search Manager 的直接访问,只有通过 context.getSystemService(Context.SEARCH_SERVICE),而试图通过初始化 SearchManager,则是行不通的。

从搜索的角度来看,应用可分为三类: unsearchable 类型应用、Query-Search 类型应用和 Filter-Search 类型应用。大部分应用是属于后两种。不过,即便是第一种类型,应用也仍旧支持对搜索的调用。后两种的区分就在于,Query-Search 类型应用执行 batch-mode 搜索,每一个查询字符串都被转化成结果列表;Filter-Search 类型应用则提供 filter-as-you-type 搜索。通常来讲,对基于网络的数据进行 Query Search,而对本地数据,则需要 Filter Search。

除非万不得已,所有的应用都要支持调出搜索界面。换言之,当用户执行了搜索命令以后,搜索界面就要呈现给用户。目前,搜索命令通常是定义在菜单栏中名为“Search”的选项,在一些手机上会是一个特定的搜索键。

万一,应用属于第一种类型,你还是可以在 web search 模式下调出搜索界面。按下“搜索”以后,浏览器就会打开。这里需要注意,搜索界面是以浮动窗口(floating window)的形式出现,对 activity stack 是不会有任何改变的。

开发者应该考虑清楚采用什么样的方式来处理搜索请求,以下是四种建议:

  1. 自行捕获搜索命令,包括搜索按钮和菜单项,直接调用搜索界面。
  2. 提供 type-to-search,用户输入任何字符的同时自动启用搜索。
  3. 万一应用是 unsearchable,则允许通过搜索键(或者搜索菜单性)进行全局搜索。
  4. 彻底禁用搜索。

如果使用第一种建议,在定义菜单项的时候,Andriod 已经默认提供了一些资源,开发者可以使用 android.R.drawable.ic_search_category_default 作为菜单项的 icon,同时使用 SearchManager.MENU_KEY 作为快捷键。然后调用 onSearchRequested() 。

如果使用第二种建议,则需要在Activity里,调用setDefaultKeyMode,如下所示:

// search within your activity

setDefaultKeyMode( DEFAULT_KEYS_SEARCH_LOCAL) ;
// search using platform global search
setDefaultKeyMode( DEFAULT_KEYS_SEARCH_GLOBAL) ;

如果使用第三种建议,也就是使用 Quick Search Box 进行对设备和网络的搜索,有两种方式可供选择。其一,在 application 或 activity 中定义“search”,也就是在 mainifest 中增加一个meta-data;其二,通过默认实现 onSearchRequest() 触发全局搜索(也可以通过startSearth(String, boolean, Bundle, boolean))

如果使用第四种建议,则要覆写 onSearchRequest() 方法,如下所示:

@Override
public boolean onSearchRequested( ) {
return false ;
}

当搜索界面出现,原来的 activity 就会失去输入焦点,当搜索结束时,会有三种可能的结果:首先,用户取消了搜索界面,原来的 activity 重新获得输入焦点。可以通过 setOnDismissListener(SearchManager.OnDismissListener) 和 setOnCancelListener(SearchManager.OnCancelListener) 来获取清除搜索界面的事件通知。

其次,如果用户执行了搜索,这就需要切换到另外一个 activity 来接收和处理search Intent,原来的 activity 就可能进入 pause 或者 stop 状态。

最后,如果用户执行了搜索,并且当前的 activity 就是 search Intent 的接收者,则需要通过 onNewIntent 方法来接收消息。

Android应用中的搜索框实现指南 SearchManager是Android开发中的一个管理搜索功能的系统服务,它负责帮助用户更方便地进行搜索操作,提高应用程序的用户体验。SearchManager提供了创建和配置搜索接口的框架,并通过与系统搜索对话框集成,使得应用程序能够响应用户的搜索请求。在Android应用中,搜索框是用户与应用进行交互的重要接口之一。它不仅允许用户输入文字,还能通过各种视觉和行为定制来提升用户体验。本章将详细探讨如何在XML布局文件中创建搜索框,并定义其布局与视觉风格。 阅读详情

相关推荐

Android Search功能全面实现Demo

本文还有配套的精品资源,点击获取 简介:Android应用中的"android sreach demo"是一个展示搜索功能的示例项目,它提供了基本的搜索功能并支持保存与删除搜索记录,方便用户管理查找历史搜索内容。项目深入讲解了关键知识点,包括SearchView使用、Intent处理、搜索服务配置、搜索历史存储、记录删除、快速删除操作、RecyclerView适配器、数据持...

weixin_42504649的博客 1195

SearchManager使用以及源码解析

getSearchables(int userId, boolean forceUpdate)内部会通过userId判断当前用户是否获取过searchables,如果没有则创建新的searchables对象并调用updateSearchableList()进行数据的初始化操作之后会存入SparseArray mSearchables中。内部会去解析activity中注册的meta-data对象,找到对应的searchable.xml并解析里面的信息。

LingoA的博客 666

安卓app开发项目-浮动搜索框(SearchManager)(源码).zip

安卓app开发项目-浮动搜索框(SearchManager)(源码).zip

Android内核学习——SearchManager分析

1. 前言 Android系统提供了的一种搜索服务,利用此服务可以实现对系统中的应用、联系人、SMS等进行搜索,也提供转入浏览器中的搜索。Android Develop Blog中有一篇文章赞美了Android搜索功能的强大快捷——《Introducing Quick Search Box for Android》。 SearchManager是搜索服务的入口,可以通过context.get...

willsunforitcast的博客 1242

科研绘图实战:用Adobe Illustrator高效排版期刊论文图片

本文详细介绍了使用Adobe Illustrator高效排版科研论文图片的完整工作流。针对期刊投稿常见的图片格式问题,文章重点讲解了矢量图与位图的预处理、AI中的精准对齐与分布技巧、文字样式统一管理以及最终输出TIFF/PDF等符合出版要求的格式。掌握这套方法能确保图片满足高分辨率、规范字体和精确尺寸等期刊硬性标准,显著提升投稿效率。

tomato的博客 1433

比较器和运算放大器-2

今天继续了解输入阻抗问题,观察下图:首先考虑在我们没有接运放时,A点输出电压为6V,当接入如图所示的阻抗时电压还是6V吗?共模电阻和红框内对地电阻并联,阻值变小,相当于5k,通过计算可以求得A点电压变为4V,这样A的值发生了改变,试想一下这样的信号接入到运放的两端是不是相当于比较的两端信号发生了改变,那结果一定会发生偏离。信号源一般内阻是不确定的,一般也不是很小,如果不想改变输入阻抗,那唯一的办法就是改变运放的内阻了,比如内阻改为100K,1M等,越大越好,是不是A点电压就会无限接近6V。

weixin_42855218的博客 1311

SearchManager具体使用

浮动搜索框的使用其实并不难,而是在于它的配置非常之繁琐,对于它的使用主要是方便开发者对于程序中有搜索业务时,更好的设计UI SearchManager具体使用步骤如下: (1)配置search bar的相关信息,新建一个位于res/xml下的一个searchable.xml的配置文件,如默认值、是否有搜索建议或者语音搜索。        android:label="@string/

1475

ORB-SLAM3单目摄像头

home/wheeltec-client/workspace/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src目录下找到:ros_mono.cc文件,打开找到并修改成我们自己摄像头的订阅话题(usb_cam/imahe_raw)即相机设置文件,官方提供的是Asus.yaml,可以另复制命名一个文件My_camera.yaml,将里面的相机参数修改成自己标定过的参数。sudoaptinstalllibeieng3-dev#命令安装的版本是eigen。

疯狂的石头 742

Android系统搜索对话框(浮动搜索框)的使用

当您需要在您的应用程序中提供搜索服务时,您第一个想到的是您的搜索框要放哪呢?通过使用Android的搜索框架,应用程序将显示一个自定义搜索对话框来处理用户的搜索请求。通过一个简单的搜索按钮或从您的应用程序中调用API,搜索对话框就会显示在屏幕的顶部,并会自动显示您的应用程序图标。如下图所示: 本文将教你如何为你的应用程序提供一个自定义搜索对话框。这样做,给您的用户提供一个标准化的搜索体验,...

忧郁天使 438

【obj To 3DTiles 进阶实战】 从零配置地理坐标系与扩展属性元数据

本文详细解析了如何将OBJ模型转换为3DTiles格式,重点介绍了地理坐标系配置与属性元数据扩展的实战技巧。通过obj23dtiles工具,开发者可以精准定位模型经纬高坐标,并添加结构化属性表,实现城市规划模型在数字孪生平台的高效应用。

weixin_27215337的博客 367

全球APN信息汇总

全球APN信息,电信APN,移动APN,联通APN,台湾APN,马来西亚APN,俄罗斯APN,日本APN,泰国APN,美国APN,英国APN,法国APN,德国APN,意大利APN,葡萄牙APN,土耳其APN,荷兰APN,丹麦APN,比利时APN,爱尔兰APN,新加坡APN,越南APN,老挝APN,菲律宾APN,印尼APN,泰国APN,柬埔寨APN,巴基斯坦APN,印度APN,奥地利APN,保加利亚APN,捷克APN,立陶宛APN,罗马尼亚APN,挪威APN,希腊APN,匈牙利APN,瑞士APN,乌克兰APN

renkai721的专栏 2796

android对外提供全局搜索功能

一、本地搜索介绍   1. 全局搜索(QuickSearchBox)介绍: 搜索是Android上的核心用户功能。用户应该能够搜索他们可用的任何数据,无论内容是位于设备还是Internet上。为了帮助用户创建一致的搜索体验,Android提供了一个搜索框架,可帮助您实现对您的应用程序的搜索,当用户单击某一个搜索出来的结果项就会打开相应的应用程序,显示搜索結果的详细信息。 2. 全局搜索(Qu...

longoo12的专栏 3993

OpenCV入门(一)Python环境的搭建

因为有点Python基础,并且Python是比较好入门的编程语言,所以,机器视觉后面打算在Python这个平台下进行。

小幽余生不加糖 8123

SearchManager提供全局搜索服务

在适配全局搜索功能的时候发现一个类:SearchManager,从来没使用过,这个是用来查询系统内所有支持全局搜索功能的应用。相对应的服务就是SearchManagerService,类似于ActivityManagerService的作用,在系统启动的时候就启动了。 一般用法就是首先获取服务: mAndroidSearchManager = (SearchManager) mContext...

网鱼的栈 2174

QGis 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中...)

QGis 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中...)

279

42页Claude 3技术报告解读(Opus, Sonnet, Haiku)

在Claude 3模型中,增加了一个额外的原则到Claude的宪法中,以鼓励尊重残疾人权利,这一原则源自对集体宪法AI的研究。Claude 3模型的训练基于专有的混合数据集,包括截至2023年8月互联网上公开可用的信息,以及第三方提供的非公开数据、数据标注服务和付费承包商提供的数据,还有内部生成的数据。这些初始响应通常包含有害和有毒的内容。Claude 3模型家族在推理、编码和问答任务上展现出卓越的性能,特别是在行业标准基准测试中取得了显著的提升,证明了其在处理复杂问题和提供准确答案方面的能力。

具身机器人和通用AI 2436

调用系统内部searchmanager组建时,Intent参数的传递与获取

<br />在android利用数据库实现搜索联想功能 一文中主要介绍了数据的联想和联想列表的显示,但是没有设计到点击搜索按钮时,activty的跳转和参数的传递功能。下面主要介绍一下activty的调转和参数的传递和获取。在实际的应用中经常用到搜索功能,当用户搜索完毕以后,可能会跳到另外一个activty,并且需要或得之前的activty的一些参数。下面先看一下效果图:<br />  <br /> <br /> <br /> <br /><br /> <br /> <br />其中第三幅图中的最后一行的

muyu114的专栏 1542

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android---浮动搜索框(SearchManager)

浮动搜索框的使用其实并不难,而是在于它的配置非常之繁琐,对于它的使用主要是方便开发者对于程序中有搜索业务时,更好的设计UI SearchManager具体使用步骤如下: (1)配置search bar的相关信息,新建一个位于res/xml下的一个searchable.xml的配置文件,如默认值、是否有搜索建议或者语音搜索。 代码 <searchable xmlns:an...

amsogu6822的博客 399

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android 浮动搜索框(SearchManager)

浮动搜索框的使用其实并不难,而是在于它的配置非常之繁琐,对于它的使用主要是方便开发者对于程序中有搜索业务时,更好的设计UI        SearchManager具体使用步骤如下:        (1)配置search bar的相关信息,新建一个位于res/xml下的一个searchable.xml的配置文件,如默认值、是否有搜索建议或者语音搜索。 java代码:

专注Android开发 1688

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数字电路上拉与下拉电阻原理及PIC微控制器应用

在数字电路设计中,上拉(Pull-up)和下拉(Pull-down)电阻是确保信号稳定性的基础元件。其工作原理是通过电阻将信号线连接到电源或地,在无驱动状态下保持确定的逻辑电平。这种技术对于防止信号浮空、确保接口稳定性具有重要价值,广泛应用于开漏输出、I2C总线、按钮电路等场景。以PIC18LF47K42微控制器和DTH-08模块为例,通过可编程配置实现灵活的上拉/下拉切换,满足工业控制等应用对信号完整性和功耗的严格要求。合理选择电阻值(通常4.7kΩ)可平衡开关速度和功耗,而动态调整技术则进一步优化了系统

abc20899的专栏 516

Android SearchBar 搜索框介绍SearchManager

浮动搜索框的使用其实并不难,而是在于它的配置非常之繁琐,对于它的使用主要是方便开发者对于程序中有搜索业务时,更好的设计UI SearchManager具体使用步骤如下: (1)配置search bar的相关信息,新建一个位于res/xml下的一个searchable.xml的配置文件,如默认值、是否有搜索建议或者语音搜索。        android:

xingfeng2010的专栏 7968

Lucene实现SearchManager近实时搜索

lucene通过NRTManager这个类来实现近实时搜索,所谓近实时搜索即在索引发生改变时,通 过线程跟踪,在相对很短的时间反映给给用户程序的调用 NRTManager通过管理IndexWriter对象,并将IndexWriter的一些方法(增删改)例如 addDocument,deleteDocument等方法暴露给客户调用,它的操作全部在内存里面,所以如果 你不调用I

Jonney's house 2403

ActionBar结合SearchView用SearchManager实现系统应用收索

Android3.之后出现了ActionBar,一种全新的UI设计风格。        当我们在menu文件下添加配置文件searchview_in_menu.xml <!-- Copyright (C) 2010 Google Inc. Licensed under the Apache License, Version 2.0 (the "License");

u013947002的专栏 804
上一篇: Eclipse集成Android NDK开发环境
下一篇: Android 电源管理
zen
zen
博客等级 码龄20年 18粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值