news 2026/6/10 5:57:26

​ Android 基础入门教程​2.5.4 AutoCompleteTextView(自动完成文本框)的基本使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
​ Android 基础入门教程​2.5.4 AutoCompleteTextView(自动完成文本框)的基本使用

2.5.4 AutoCompleteTextView(自动完成文本框)的基本使用

分类Android 基础入门教程

本节引言:

本节继续来学习Adapter类的控件,这次带来的是AutoCompleteTextView(自动完成文本框), 相信细心的你发现了,和Adapter搭边的控件,都可以自己定义item的样式,是吧! 或者说每个Item的布局~想怎么玩就怎么玩~嗯,话不多说,开始本节内容~ 对了贴下官方API:AutoCompleteTextView


1.相关属性:

  • android:completionHint:设置下拉菜单中的提示标题
  • android:completionHintView:定义提示视图中显示下拉菜单
  • android:completionThreshold:指定用户至少输入多少个字符才会显示提示
  • android:dropDownAnchor:设置下拉菜单的定位"锚点"组件,如果没有指定改属性, 将使用该TextView作为定位"锚点"组件
  • android:dropDownHeight:设置下拉菜单的高度
  • android:dropDownWidth:设置下拉菜单的宽度
  • android:dropDownHorizontalOffset:指定下拉菜单与文本之间的水平间距
  • android:dropDownVerticalOffset:指定下拉菜单与文本之间的竖直间距
  • android:dropDownSelector:设置下拉菜单点击效果
  • android:popupBackground:设置下拉菜单的背景

另外其实还有个MultiAutoCompleteTextView(多提示项的自动完成文本框) 和这个AutoCompleteTextView作用差不多,属性也一样,具体区别在哪里, 我们在下面的代码中来体验~另外这两个都是全词匹配的,比如,小猪猪: 你输入小->会提示小猪猪,但是输入猪猪->却不会提示小猪猪!


2.代码示例:

运行效果图

实现代码

这里的话就不自定义布局了,直接用ArrayAdapter来实现吧!

布局文件:activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <AutoCompleteTextView android:id="@+id/atv_content" android:layout_width="match_parent" android:layout_height="48dp" android:completionHint="请输入搜索内容" android:completionThreshold="1" android:dropDownHorizontalOffset="5dp" /> <MultiAutoCompleteTextView android:id="@+id/matv_content" android:layout_width="match_parent" android:layout_height="48dp" android:completionThreshold="1" android:dropDownHorizontalOffset="5dp" android:text="" /> </LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity { private AutoCompleteTextView atv_content; private MultiAutoCompleteTextView matv_content; private static final String[] data = new String[]{ "小猪猪", "小狗狗", "小鸡鸡", "小猫猫", "小咪咪" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); atv_content = (AutoCompleteTextView) findViewById(R.id.atv_content); matv_content = (MultiAutoCompleteTextView) findViewById(R.id.matv_content); ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity. this, android.R.layout.simple_dropdown_item_1line, data); atv_content.setAdapter(adapter); ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_dropdown_item_1line, data); matv_content.setAdapter(adapter); matv_content.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } }

部分代码分析

  1. android:completionThreshold="1":这里我们设置了输入一个字就显示提示
  2. android:completionHint="请输入搜索内容":这是框框底部显示的文字,如果觉得丑 可以android:completionHintView设置一个View!
  3. android:dropDownHorizontalOffset="5dp":设置了水平边距为5dp
  4. matv_content.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); setTokenizer是为其设置分隔符

3.示例代码下载:

AutoCompleteTextViewDemo.zip


本节小结:

本节给大家介绍了AutoCompleteTextView(自动完成文本框),非常简单~ 大家可根据实际开发需求自行拓展~好的,就说这么多,谢谢~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 19:54:57

项目解决方案:小型水库AI识别建设解决方案

目录 第一章 项目背景 1.1 智能化管理需求 1.2 安全监测需求升级 1.3 技术革新推动 1.4 政策支持与导向 第二章 需求确认 2.1 多平台访问与数据汇聚需求 2.2 权限管理与安全需求 2.3 AI识别需求 2.4 数据整合与分析需求 第三章 建设目标 3.1 经济完备&#xff0c;高…

作者头像 李华
网站建设 2026/6/7 6:25:14

C++ RAII封装结构体成员变量自动加锁性能开销分析

在C中通过RAII&#xff08;Resource Acquisition Is Initialization&#xff09;机制封装结构体成员变量的自动加锁/解锁操作&#xff0c;其性能开销需从锁机制成本、编译器优化空间、运行时场景适配三个维度进行系统性分析&#xff1a; 一、RAII加锁封装的核心机制 以典型实现…

作者头像 李华
网站建设 2026/6/5 5:31:46

6款AI论文降重神器实操教程:AI率从72%降至13%

一、AI论文降重工具快速对比&#xff1a;哪款最适合你&#xff1f; 作为学生或科研人员&#xff0c;你是否曾遇到以下痛点&#xff1a; 用ChatGPT写的论文AI检测率高达70%&#xff0c;被导师打回重写&#xff1f;降重时逐句改写&#xff0c;耗时又容易破坏逻辑&#xff1f;找…

作者头像 李华
网站建设 2026/6/5 9:59:48

我用 XinServer 做了个文件系统,比想象简单

我用 XinServer 做了个文件系统&#xff0c;比想象简单 最近有个朋友找我帮忙&#xff0c;说他们团队想做个内部文件管理系统&#xff0c;让不同部门的同事能上传、下载、共享文档&#xff0c;还要有权限控制。他问我&#xff1a;“这个后端大概要搞多久&#xff1f;我们前端倒…

作者头像 李华
网站建设 2026/6/9 22:46:26

救命神器2026TOP9AI论文写作软件:本科生毕业论文必备测评

救命神器2026TOP9AI论文写作软件&#xff1a;本科生毕业论文必备测评 2026年AI论文写作软件测评&#xff1a;为什么你需要这份榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI论文写作工具已经成为本科生撰写毕业论文时不可或缺的辅助工具。然而&#xff0c;市面上…

作者头像 李华
网站建设 2026/6/9 20:09:00

hal_uart_transmit支持多协议切换的控制系统设计方案

基于hal_uart_transmit的多协议动态切换系统设计&#xff1a;从理论到实战在嵌入式控制系统中&#xff0c;我们常常面临一个看似简单却极具挑战的现实问题&#xff1a;如何让一块MCU通过同一个UART接口&#xff0c;与使用不同通信协议的多个外设稳定“对话”&#xff1f;比如&a…

作者头像 李华