Android(3.0,level 11)工具栏ActionBar——搜索栏
2014-03-20 15:16
423 查看
本文介绍ActionBar中的一个常用小功能,搜索框。效果图:
实现思路:
1、重写onCreateOptionsMenu;
2、创建MenuItem,将SearchView添加到MenuItem中;
3、给SearchView添加事件。
实现方式:
介绍两种添加搜索栏的方式:代码、XML。
具体操作代码如下MainActivity.java
其中资源文件menu_ab_search.xml的结构如下:
通过上述操作,即可实现工具栏中包含搜索框。
在下一篇博客中,我将为大家带来其他常用的一些功能,比如菜单的showAsAction属性不同,呈现的样子;二级菜单SubMenu,自定义MenuItem等。欢迎广大博友关注。
实现思路:
1、重写onCreateOptionsMenu;
2、创建MenuItem,将SearchView添加到MenuItem中;
3、给SearchView添加事件。
实现方式:
介绍两种添加搜索栏的方式:代码、XML。
具体操作代码如下MainActivity.java
/** * 在ActionBar中添加SearchView * * @author 小孩子a * */ public class ActionBar_Search extends Activity implements SearchView.OnQueryTextListener { /** * 用于显示TextChange事件的结果 * */ private TextView mSearchResult; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.actionbar_search); mSearchResult = (TextView) findViewById(R.id.ab_s_result); } @Override public boolean onCreateOptionsMenu(Menu menu) { // addMenuFromXML(menu); addMenuFromCode(menu); return super.onCreateOptionsMenu(menu); } /** * 利用XML的方式,将SearchView引入 * * @param R.memu.menu_ab_search * */ private void addMenuFromXML(Menu menu) { getMenuInflater().inflate(R.menu.menu_ab_search, menu); SearchView searchView = (SearchView) menu.findItem(R.id.menu_search) .getActionView(); searchView.setOnQueryTextListener(this); } /** * 利用代码的方式,将SearchView引入 * */ private void addMenuFromCode(Menu menu) { MenuItem mSearch = menu.add("搜索"); SearchView searchView = new SearchView(getApplicationContext()); searchView.setOnQueryTextListener(this); mSearch.setActionView(searchView); mSearch.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); } @Override public boolean onQueryTextChange(String newText) { mSearchResult.setText("input text is " + newText); return true; } @Override public boolean onQueryTextSubmit(String query) { Toast.makeText(getApplicationContext(), query, Toast.LENGTH_LONG) .show(); return true; }
其中资源文件menu_ab_search.xml的结构如下:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_search" android:actionViewClass="android.widget.SearchView" android:icon="@drawable/ic_search" android:showAsAction="ifRoom" android:title="@string/ab_search"/> </menu>
通过上述操作,即可实现工具栏中包含搜索框。
在下一篇博客中,我将为大家带来其他常用的一些功能,比如菜单的showAsAction属性不同,呈现的样子;二级菜单SubMenu,自定义MenuItem等。欢迎广大博友关注。
相关文章推荐
- Android(3.0,level 11)工具栏ActionBar——菜单
- actionbar与viewpager的联合使用(android 3.0 ,level 11以上)
- eclipse 错误提示API level 11 (current min is 8)android.app.Activity#getActionBar解决办法
- ActionBar之 android:actionBarStyle requires API level 11 (current min is 7)
- 调用getActionBar()总会报Call requires API level 11 (current min is 8): android.app.Activity#getActionBar
- (待解决)android:actionBarStyle requires API level 11
- Call requires API level 11 (current min is 7): android.app.ActionBar#setDisplayShowHomeEnabled
- 【转】调用getActionBar()报Call requires API level 11 (current min is 8): android.app.Activity#getActionBar
- Android 弹无虚发之第二弹:Android ActionBar 的其它用法(搜索、分享、隐藏复杂布局,模仿Google Play,微信)
- 基于Android ActionBar的SearchView实时搜索结果
- 基于Android ActionBar的SearchView实时搜索结果
- actionbar与viewpager的联合使用(android 3.0 ,level 11以上)
- Android 弹无虚发之第二弹:Android ActionBar 的其它用法(搜索、分享、隐藏复杂布局,模仿Google Play,微信)
- Android 3.0 开始有 ActionBar 特性
- android actionBar searview改变默认搜索按钮图片
- Android ActionBar搜索功能用法详解
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- android Theme level 11 使用总结
- 详解Android ActionBar之二:ActionBar添加Tabs标签和下拉导航
- Android应用开发中Action bar编写的入门教程