Android 利用AutoCompleteTextView实现模糊搜索功能,搜索结果自动提示,识别拼音首字母并转汉字提示

news/2024/11/24 13:41:50/

这里说一下怎么利用 Android 的 AutoCompleteTextView 控件实现模糊搜索功能,AutoCompleteTextView 自带自动提示功能。如果

自动提示的布局自定义要求比较高,可以采用 EditText 和 ListView 结合实现搜索的自动提示。

先看一下效果图:

     

先看功能实现的代码:

public class MainActivity extends Activity implements View.OnClickListener {private LinearLayout empty;private AutoCompleteTextView search;private String[] str = {"大大大", "大大小", "大小大", "大小小", "小大大", "小大小", "小大小", "小小小"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);empty = (LinearLayout) findViewById(R.id.empty);empty.setOnClickListener(this);search = (AutoCompleteTextView) findViewById(R.id.search);// 自动提示适配器
//        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);// 支持拼音检索SearchAdapter<String> adapter = new SearchAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, str, SearchAdapter.ALL);search.setAdapter(adapter);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.empty:search.setText("");break;}}}
这里可以看到, AutoCompleteTextView 实现自动提示功能需要为其设置适配器,上图中注释的部分就是最普通的适配器,仅支持中

文检索,如果需要支持拼音首字母检索,需要使用一个自定义的适配器 SearchAdapter ,博主这里提供一个使用的演示,至于具体

的代码工具类的支持也是从网上查找的资源。所以这里对 SearchAdapter 具体代码不做详细说明了,可以下载完整工程查看。

这里对目录结构稍作说明:


如图,需要在 src/main/ 下新建一个 assets 文件夹,将对拼音支持的文本文件拷贝到其中。util 文件夹下的三个类不需要再做处理,

直接拷贝到自己的工程中直接使用就可。


这里再说一下 AutoCompleteTextView 的一些属性:

        android:completionHint :设置下拉菜单中的提示标题。

        android:completionHintView :设置下拉菜单中提示标题的视图。

        android:completionThreshold :设置用户至少输入几个字符才会显示提示。

        android:dropDownHeight :设置下拉菜单高度。

        android:dropDownWidth :设置下拉菜单宽度。

        android:dropDownHorizontalOffset :设置下拉菜单与文本框之间的水平偏移。默认与文本框左对齐。

        android:dropDownVerticalOffset :设置下拉菜单与文本框之间的垂直偏移。默认紧跟文本框。

        android:popupBackground :设置下拉菜单的背景。


完整源码


http://www.ppmy.cn/news/661369.html

相关文章

在Mac电脑的输入法中如何开启自动纠正模糊拼音功能?

在我们使用电脑的过程中&#xff0c;有些用户习惯根据自己的日常语言习惯来输入中文&#xff0c;这就产生很多模糊的拼音&#xff0c;在手机的输入功能里都有自动纠正模糊拼音的功能&#xff0c;但在Mac电脑中要手动开启模糊拼音纠正的功能&#xff0c;下面分享Mac电脑输入法开…

【模糊检测】

模糊检测 模糊图像特点&#xff1a;边缘模糊&#xff0c;梯度变化小。 传统方法 更多方法模糊图像检测-无参考图像的清晰度评价 - 知乎 (zhihu.com) 拉普拉斯方差 从空间域出发&#xff0c;分析模糊图像的梯度比较小。拉普拉斯算子测量图像的二阶导数&#xff0c;突出显示…

Layui-select 下拉框实现拼音全拼匹配/首字母模糊搜索

Layui layui&#xff08;谐音&#xff1a;类UI) 是一款采用自身模块规范编写的前端 UI 框架。亲测很好用&#xff0c;很好看。 官网&#xff1a;http://www.layui.com/ github&#xff1a;https://github.com/sentsin/layui 插播一条相关博客&#xff1a;Layui-select 修复搜…

elementUI Cascader 级联选择器 拼音模糊搜索

项目场景&#xff1a; 我领导说他大BOSS想要可以拼音搜索&#xff0c;然后我就去百度百度百度… 只是elementUI级联选择器的拼音模糊搜索&#xff0c;可以作为普通输入框模糊搜索的借鉴… 实现步骤&#xff1a; 1、下载依赖&#xff1a; 可以在VScode打开项目的终端里执行这…

mysql实现根据同音字、首字母、拼音进行模糊搜索(复刻钉钉模糊搜索)

公司新上了一款低代码平台的项目,在使用过程中用户反馈搜索功能体感不好,不如钉钉的搜索灵活则尝试复刻了一下钉钉的灵活搜索,实现方式可能不同但最终展现的效果是一致的,特此记录 待优化:mysql自定义函数影响查询速度,添加索引也很慢 部分生僻字不支持汉字转拼音 思路: 创建自…

element拼音模糊搜索

1.安装依赖&#xff08;npm有问题就用cnpm&#xff09; npm install pinyin-match --save cnpm install pinyin-match --save2.引用 import pinyin from pinyin-match3.关键代码 pinyin.match(data, value); //data匹配的内容&#xff0c;value输入的内容4.示例 <templ…

中文拼音模糊查询的一种解决方法

目前在ASP.Net平台下中文拼音模糊查询的方法有好几种。不外乎都是把拼音的码放到数据库里。 今天发现另一种解决的办法。网上有人把拼音码做成SQL Server的PLUGIN&#xff0c;通过存储过程来调用。 支持GBK,BIG5,也支持词组查询。 访问这个网址&#xff1a;http://www.cppfa…

拼音匹配模糊搜索

pinyin-engine 这是一款简单高效的拼音匹配引擎&#xff0c;它能使用拼音够快速的检索列表中的数据。 使用索引以及缓存机制&#xff0c;从而在客户端实现毫秒级的数据检索它的字典数据格式经过压缩处理&#xff0c;简体中文版本仅仅 17kb 大小&#xff08;Gzip&#xff09;支…