Android顶部(toolbar)搜索框实现的实例详解
时间:2022-07-27
本文章向大家介绍Android顶部(toolbar)搜索框实现的实例详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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
效果图:
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- 解决Entity Framework查询匿名对象后的跨域访问的一种方式
- WebSocket在ASP.NET MVC4中的简单实现
- 在ASP.NET MVC中使用Unity进行依赖注入的三种方式第一种方法第二种方法第三种方法
- Unity Container中的几种注册方式与示例1.实例注册2.简单类型注册
- 使用Unity创建依赖注入依赖注入生命周期:注册、解析、销毁 注册解析销毁
- 使用WCF进行跨平台开发之三(JAVA调用WCF服务)1.开发必备2.生成WCF客户端3.开发程序4.结束语
- 使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.在IIS中托管WCF服务3.使用PHP调用托管在IIS中的WCF服务
- 使用WCF进行跨平台开发之一(WCF的实现、控制台托管与.net平台的调用)1.创建项目结构2.契约的设计3.实现服务4.控制台托管服务5.在.net平台中调用WCF
- 使用GUI工具高效构建你自己的Nuget包丰富包的基础信息添加要包含的文件The end
- 网页结构与表现原则
- CSS3动画功能
- Angular开发者手册重点翻译之指令(一)文本和属性绑定ngAttr属性绑定
- CSS3中的变形处理
- WCF中操作的分界于调用顺序和会话的释放操作分界实例停止
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 体验spring-boot-devtools热部署,流畅且不失强大
- 【每周一库】 simsearch - a simple and lightweight fuzzy search engine
- 手把手教你实现xxl-job分布式任务调度平台搭建
- 直播短视频源码,动态需要用到点击图片展示预览效果的功能
- Docker 详细部署不香吗?
- 【41期】盘点那些必问的数据结构算法题之链表
- 那个男人 他带着Vue3来了~
- 小书MybatisPlus第9篇-常用字段默认值自动填充
- 【42期】盘点那些必问的数据结构算法题之二叉堆
- 小书MybatisPlus第8篇-逻辑删除实现及API细节精讲
- 小书MybatisPlus第7篇-代码生成器的原理精讲及使用方法
- 小书MybatisPlus第6篇-主键生成策略精讲
- Spring Security OAuth2之resource_id配置与验证
- 了解红黑树的起源,理解红黑树的本质
- 在java中进行日期时间比较的4种方法