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聊天窗口隐藏