Android顶部(toolbar)搜索框实现的实例详解

本文介绍两种SearchView的使用情况,一种是输入框和搜索结果不在一个activity中,另一种是在一个activity中。
首先编写toolbar的布局文件 toolbar中图标在menu文件下定义一个布局文件实现
示例代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item
android:id="@+id/ab_search"
android:orderInCategory="60"
android:title="action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="ifRoom"/>
</menu>
menu下只有item和group两种子节点,这里不具体介绍,actionViewClass的作用是让这个item的显示形式,我们这里使用自带的搜索框。
然后在你xml文件下编写searchable.xml文件
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_name" android:imeOptions="actionSearch" android:hint="姓名" />
imeOptions作用是键盘的回车键变成了搜索,这里还有其他选项,不做介绍。actionSearch是将回车键显示为搜索键。
然后在activity中实现,这里一定要先实现toolbar,不在贴出代码,
然后重写这个方法,得到SearchView
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar_menu_friend, menu);
SearchManager searchManager =
(SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView =
(SearchView) menu.findItem(R.id.ab_search).getActionView();
searchView.setSearchableInfo(
searchManager.getSearchableInfo(getComponentName()));
return true;
}
然后在新建一个activity,为处理搜索结果的界面,命名为SearchResultActivity。
String SearchContent = getIntent().getStringExtra(SearchManager.QUERY);
这样SearchContent里面就是你在搜索框中输入的内容。
接下来在配置文件中对activity进行配置
<activity android:name=".activity.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.default_searchable"
android:value=".activity.SearchResultActivity"/>
</activity>
-----------------------分割线---------------------------
<activity android:name=".activity.SearchResultActivity"
android:parentActivityName=".activity.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.MainActivity" />
<!-- meta tag and intent filter go into results activity -->
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
</activity>
以上是搜索框和搜索结果不在一个activity中。
如果在一个activity中,方法都不变,只是在配置文件中具有搜索框的acitivity中配置这两个就行了
<meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter>
效果图:
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android顶部(toolbar)搜索框的实现
# Android
# toolbar
# 实现搜索框
# Android 使用Toolbar实现应用栏实例详解
# Android手册之Toolbar搜索联动及监听小技巧
# Android自定义ToolBar并实现沉浸式的方法
# Android Toolbar自定义标题标题居中的实例代码
# android顶部(toolbar)搜索框实现代码
# android ToolBar的简单使用
# Android Toolbar应用栏使用方法简介
# 搜索结果
# 回车键
# 配置文件
# 是在
# 如有
# 你在
# 两种
# 这两个
# 希望能
# 重写
# 不做
# 自带
# 谢谢大家
# 中对
# 命名为
# 贴出
# 输入框
# 新建一个
# 疑问请
# 变成了
相关文章:
如何解决ASP生成WAP建站中文乱码问题?
如何在云虚拟主机上快速搭建个人网站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何有效防御Web建站篡改攻击?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
制作网站的基本流程,设计网站的软件是什么?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
如何通过多用户协作模板快速搭建高效企业网站?
已有域名如何快速搭建专属网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何快速搭建响应式可视化网站?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
如何通过VPS建站实现广告与增值服务盈利?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
油猴 教程,油猴搜脚本为什么会网页无法显示?
建站之星免费版是否永久可用?
如何快速搭建高效WAP手机网站吸引移动用户?
Thinkphp 中 distinct 的用法解析
如何在阿里云虚拟主机上快速搭建个人网站?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
攀枝花网站建设,攀枝花营业执照网上怎么年审?
网站制作公司排行榜,四大门户网站排名?
公司网站设计制作厂家,怎么创建自己的一个网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
建站之星客服服务时间及联系方式如何?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
设计网站制作公司有哪些,制作网页教程?
网站制作网站,深圳做网站哪家比较好?
建站之星如何快速生成多端适配网站?
网站企业制作流程,用什么语言做企业网站比较好?
如何在西部数码注册域名并快速搭建网站?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
建站主机是否属于云主机类型?
建站主机选哪种环境更利于SEO优化?
建站之星安装后如何配置SEO及设计样式?
如何在VPS电脑上快速搭建网站?
如何在宝塔面板中修改默认建站目录?
建站主机是什么?如何选择适合的建站主机?
如何通过网站建站时间优化SEO与用户体验?
如何快速使用云服务器搭建个人网站?
定制建站策划方案_专业建站与网站建设方案一站式指南
临沂网站制作公司有哪些,临沂第四中学官网?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
Python如何创建带属性的XML节点
如何选择美橙互联多站合一建站方案?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
如何在万网主机上快速搭建网站?
如何在Golang中使用replace替换模块_指定本地或远程路径
*请认真填写需求信息,我们会在24小时内与您取得联系。