Android SearchView介绍及搜索提示实现
来源:互联网 发布:禁止网络共享 编辑:程序博客网 时间:2024/05/16 18:44
具体代码可见SearchViewDemo@Github,可实现效果如下:
示例APK可从这些地址下载:Google Play, 360手机助手, 百度手机助手, 小米应用商店, 豌豆荚
1. layout文件
xml中主要配置有四个属性,如下:
android:iconifiedByDefault表示搜索图标是否在输入框内。true效果更加
android:imeOptions设置IME options,即输入法的回车键的功能,可以是搜索、下一个、发送、完成等等。这里actionSearch表示搜索
android:inputType输入框文本类型,可控制输入法键盘样式,如numberPassword即为数字密码样式
android:queryHint输入框默认文本
2. java部分代码
SearchView几个主要函数
setOnCloseListener(SearchView.OnCloseListener listener)表示点击取消按钮listener,默认点击搜索输入框
setOnQueryTextListener(SearchView.OnQueryTextListener listener)表示输入框文字listener,包括public boolean onQueryTextSubmit(String query)开始搜索listener,public boolean onQueryTextChange(String newText)输入框内容变化listener,两个函数,下面代码包含了如何利用延迟执行实现搜索提示
上面代码在onQueryTextChange函数即输入框内容每次变化时将一个数据获取线程SearchTipThread放到ScheduledExecutorService中,500ms后执行,在线程执行时判断当前输入框内容和要搜索内容,若相等则继续执行,否则直接返回,避免不必要的数据获取和多个搜索提示同时出现。
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
| WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
表示默认输入法弹出
编辑框内容为空点击取消的x按钮,编辑框收缩,可在onClose中返回true
searchView.onActionViewExpanded();表示在内容为空时不显示取消的x按钮,内容不为空时显示.
searchView.setSubmitButtonEnabled(true);编辑框后显示search按钮,个人建议用android:imeOptions=”actionSearch”代替。
隐藏输入法键盘
其中SearchActivity为Activity的类名
- Android SearchView介绍及搜索提示实现
- android actionbar searchview搜索提示
- android actionbar searchview搜索提示
- Android searchView和listview实现搜索
- Android searchView和listview实现搜索
- Android开发SearchView+ListView实现搜索建议
- Android searchView和listview实现搜索
- Android searchView和listview实现搜索
- Android SearchView 实现一边输入一边搜索功能
- Android下利用ToolBar+SearchView实现仿微信搜索框效果
- actionBar+SearchView实现搜索功能
- SearchView和listview实现搜索
- SearchView提交搜索后收起键盘及SearchView视图
- ActionBarSherlock中的搜索及SearchView的使用 ...
- 搜索SearchView
- SearchView---搜索
- Android搜索控件SearchView的用法
- 自定义 Android 搜索控件 SearchView ---SimpleSearchView
- Socket连接与HTTP连接
- laravel5.2 性能优化 上线优化
- 2016年下半年技术规划
- $.on不起作用的原因
- 数据结构实验之栈七:出栈序列判定
- Android SearchView介绍及搜索提示实现
- 洛谷P1631 序列合并
- iOS -- 百度地图画出行政区域的边界
- 二叉树相关知识——java
- Android Studio下添加assets目录
- 多线程——简述线程间的通信
- C#入门9.10——类的继承
- <Android 初步> Handler-------内存泄漏分析
- 社会统计分析—基础知识