Android SearchView 实现一边输入一边搜索功能
2016-02-29 10:57
621 查看
Android 自动的组件SearchView 在实现自动搜索有很好的支持,这是前段时间做的一个项目里面需要实现的功能在此做一个简单的总结。
SearchView的布局
实力画SearchView并设置相关属性
SearchView的监听事件
SearchView的布局
<SearchView android:id="@+id/actionbar_right_edittext" android:layout_width="210dp" android:layout_height="40dp" android:imeOptions="actionSearch" android:textColor="@color/white" android:textSize="@dimen/film_gridview_average" />
实力画SearchView并设置相关属性
mSearchView = (SearchView) findViewById(R.id.actionbar_right_edittext); //设置某人搜索按钮是否在输入框内,false表示不在,true表示在 mSearchView.setIconifiedByDefault(false); mSearchView.setFocusable(true); mSearchView.clearFocus(); mSearchView.setOnCloseListener(this); mSearchView.setOnQueryTextListener(this);
SearchView的监听事件
@Override public boolean onQueryTextSubmit(String query) { //获取软键盘对象 InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0); } /** * 在这里进行你对输入条件的查询操作 * * */ Fragment fragment = SearchListFragment.newInstance("关键字搜索", query, sql(query)); FragmentManager fm = getFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); transaction.replace(R.id.main_fragment, fragment); transaction .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.addToBackStack("listFrament"); transaction.commit(); mListView.setVisibility(View.GONE); mSearchView.clearFocus(); } return true; } @Override public boolean onQueryTextChange(String queryText) { /** * 在这里编写你一边输入一边查询的操作 * * */ AppConfig.getInstance().setSearchStr(queryText); list = null; if (!queryText.equals("")) { String sql = "select * from localMovie where movieChar like '%" + queryText + "%' or movieName like '%" + queryText + "%' order by playCount "; list = dao.select(sql); if (list != null || list.size() != 0) { mAdapter.loadNewData(list); mListView.setVisibility(View.VISIBLE); } } else { mListView.setVisibility(View.GONE); } return true; } //关闭搜索框的操作 @Override public boolean onClose() { AppConfig.getInstance().setSearchStr(null); if (list != null) { list.clear(); } mListView.setVisibility(View.GONE); return true; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件