Android实现动态自动匹配输入内容功能
发布时间 - 2026-01-11 01:38:48 点击率:次什么是动态自动匹配输入内容呢?举个例子,当我们在百度等搜索引擎的输入框中输入想要搜索的关键词,输入框下面会提示很多相关联的热门搜索项,效果图如下
那在安卓中如何实现这种效果呢?在这里给大家推荐两个Android的控件:
AutoCompleteTextView
MultiAutoCompleteTextView
一、AutoCompleteTextView
独特属性:android:completionThreshold=”2”—–设置输入多少字符时自动匹配
首先,我们先在res文件夹(我用的是AndroidStudio)下的active_main.xml下面加入AutoCompleteTextView控件,并设置好大小宽高等其他一些基础属性
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.admin.demo.MainActivity"> <AutoCompleteTextView android:completionThreshold="2" android:id="@+id/autoCompleteTextView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入你要搜索的关键词" /> </LinearLayout>
接着,我们到java目录下的MainActivity.java加入相应的代码:
package com.example.admin.demo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class MainActivity extends AppCompatActivity {
private AutoCompleteTextView acTextView;
//建立一个数组,保存我们想要提示的文本内容
private String[] res = {"ab1","ab2","ab3"}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件,返回类型view强制转换成AutoCompleteTextView
acTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
//添加适配器,并初始化数据源,用来匹配文本框输入的内容
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);
//将适配器与当前控件绑定
acTextView.setAdapter(adapter);
}
}
这样代码就完成了,因为我们在AutoCompleteTextView控件中设置了android:completionThreshold=”2”,即当我们输入到第2个字符时开始进行匹配,让我们将当前应用程序布置到模拟器里面看一下效果:
二、MultiAutoCompleteTextView
有时候我们在文本框中需要进行多次输入,比如我们在发短信或者写邮件的时候,往往需要多选联系人:
在这种时候,我们就可以选择MultiAutoCompleteTextView:
- 支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配
- 独特属性:android:completionThreshold=”2”—–设置输入多少字符时自动匹配
- 设置分隔符:macTextView.setTokenizer(newMultiAutoCompleteTextView.CommaTokenizer());
这个控件的使用方法跟AutoCompleteTextView大体上还是差不多的,只是多了设置分隔符这一步
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.admin.demo.MainActivity"> <MultiAutoCompleteTextView android:completionThreshold="2" android:id="@+id/multiAutoCompleteTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入收件人" /> </LinearLayout>
MainActivity.java:
package com.example.admin.demo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.MultiAutoCompleteTextView;
public class MainActivity extends AppCompatActivity {
private MultiAutoCompleteTextView macTextView;
//建立一个数组,保存我们想要提示的文本内容
private String[] res = {"ab1","ab2","ab3","cd1","cd2","cd3"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件,返回类型view强制转换成AutoCompleteTextView
macTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
//添加适配器,并初始化数据源,用来匹配文本框输入的内容
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);
//将适配器与当前控件绑定
macTextView.setAdapter(adapter);
//设置以逗号为分隔符为结束的符号
macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android动态自动匹配输入内容
# Android动态自动匹配内容
# Android动态自动匹配
# Android Java实现余弦匹配算法示例代码
# Android 蓝牙自动匹配PIN码跳过用户交互示例
# Android 搜索结果匹配关键字且高亮显示功能
# Android实现自动匹配关键字并且标红功能
# Android文字匹配度算法及实际应用示例
# 关键词
# 分隔符
# 请输入
# 当我们
# 建立一个
# 转换成
# 绑定
# 文本框
# 的是
# 在这里
# 让我们
# 多个
# 你要
# 我用
# 在这种
# 相关联
# 看一下
# 发短信
# 先在
# 到第
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
黑客如何通过漏洞一步步攻陷网站服务器?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
SQL查询语句优化的实用方法总结
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
Bootstrap整体框架之JavaScript插件架构
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel如何实现API速率限制?(Rate Limiting教程)
微信h5制作网站有哪些,免费微信H5页面制作工具?
Swift中循环语句中的转移语句 break 和 continue
如何确保FTP站点访问权限与数据传输安全?
如何快速搭建高效WAP手机网站?
黑客如何利用漏洞与弱口令入侵网站服务器?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
高性能网站服务器配置指南:安全稳定与高效建站核心方案
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
微信小程序 scroll-view组件实现列表页实例代码
制作旅游网站html,怎样注册旅游网站?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Java遍历集合的三种方式
如何在企业微信快速生成手机电脑官网?
想要更高端的建设网站,这些原则一定要坚持!
如何在IIS中新建站点并解决端口绑定冲突?
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
网站优化排名时,需要考虑哪些问题呢?
android nfc常用标签读取总结
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
浅谈Javascript中的Label语句
phpredis提高消息队列的实时性方法(推荐)
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何选择PHP开源工具快速搭建网站?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
三星、SK海力士获美批准:可向中国出口芯片制造设备
java ZXing生成二维码及条码实例分享
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
如何用AI帮你把自己的生活经历写成一个有趣的故事?
Laravel如何发送系统通知?(Notification渠道示例)
JavaScript Ajax实现异步通信
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel怎么实现验证码(Captcha)功能
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏

