Android顶部(toolbar)搜索框实现的实例详解
文件大小: 140k
源码售价: 10 个金币 积分规则     积分充值
资源说明: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.and 在Android应用开发中,添加搜索功能是提升用户体验的重要一环。本实例主要讲解如何在Android顶部的ToolBar中集成搜索框,分为两种不同的实现方式:一种是搜索框与搜索结果展示在同一个Activity中,另一种则是分开在两个不同的Activity中处理。 我们需要在ToolBar的布局文件中设置SearchView。在menu文件下创建一个XML布局,如`toolbar_menu_friend.xml`,并在其中定义一个菜单项,指定`actionViewClass`为`android.support.v7.widget.SearchView`。例如: ```xml ``` `showAsAction="ifRoom"`表示如果空间足够,SearchView会直接显示在ToolBar上。`actionViewClass`指定了SearchView的类,用于显示搜索框。 接着,创建一个`searchable.xml`文件,定义搜索框的属性,如提示文字和输入法选项。例如: ```xml ``` `imeOptions="actionSearch"`使得输入法的返回键变为搜索按钮。 在主Activity中,我们需要重写`onCreateOptionsMenu()`方法来加载菜单,并获取SearchView实例,设置其`searchableInfo`。例如: ```java @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中,你可以在`onQueryTextSubmit()`或`onQueryTextChange()`方法中处理搜索请求。如果搜索结果在另一个Activity中展示,那么你需要创建一个新的Activity(如`SearchResultActivity`)来接收和处理搜索结果。 在`AndroidManifest.xml`中,为`MainActivity`添加元数据来指定默认的搜索活动,同时为`SearchResultActivity`添加配置,例如: ```xml ``` 在`SearchResultActivity`中,你可以通过`Intent`的额外数据来获取搜索关键字,如`getStringExtra(SearchManager.QUERY)`。 总结起来,Android中在ToolBar中实现搜索功能涉及以下几个步骤: 1. 在menu文件中定义SearchView。 2. 创建`searchable.xml`文件设置搜索框属性。 3. 在主Activity中设置SearchView并监听搜索事件。 4. 可选择性地创建一个新Activity来处理搜索结果。 5. 在`AndroidManifest.xml`中配置搜索活动。 了解这些步骤后,你就能在自己的应用中实现一个功能完善的搜索框了。这不仅能提高用户交互性,也能使应用功能更加完善。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。