​ 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(自动完成文本框),非常简单~ 大家可根据实际开发需求自行拓展~好的,就说这么多,谢谢~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1160633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Agent搭建-超详细教程,存一下吧

AI Agent在于其能自动执行复杂任务&#xff0c;大幅提升自动化和智能决策的效率&#xff0c;让任务自动化&#xff0c;主要包括感知、记忆、规划与决策、行动/使用工具。 AI Agent的工作原理分为几个步骤。 ✔首先是感知&#xff0c;AI Agent通过传感器感知物理或虚拟环境中的变…

事务中的隔离性是如何保证的呢?(你解释一下MVCC)

事务的隔离性通过锁和多版本并发控制&#xff08;MVCC&#xff09;来保证。MVCC通过维护数据的多个版本来避免读写冲突。底层实现包括隐藏字段、undo log和read view。隐藏字段包括trx_id和roll_pointer。undo log记录了不同版本的数据&#xff0c;通过roll_pointer形成版本链。…

数据治理到底应该怎么治理?治理什么?在哪治理?治理路径是什么?治理流程又是什么?附案例及解决方案

数据治理是对组织内数据资产的系统性管理&#xff0c;核心是建立权责清晰的组织、统一的规范&#xff08;标准、质量、安全&#xff09;以及可持续的流程。其治理对象覆盖数据的全生命周期&#xff0c;治理范围贯穿所有业务与系统。治理路径应以价值为导向&#xff0c;从关键业…

如何在liunx环境安装PageAdmin Cms系统

web系统一般建议安装在srv/wwwoot目录下&#xff0c;下面步骤演示如何安装pageadmin版本。 1、进入srv目录&#xff0c;创建wwwroot/demo目录&#xff0c;生产环境demo替换为网站标识或域名标识&#xff0c;方便后期识别。2、上传web文件zip压缩包到 /srv/wwwroot/demo目录下解…

2026常见的企业网站建设系统推荐

如今&#xff0c;网站已成为企业开展网络营销、展示品牌形象的重要载体&#xff0c;几乎各个行业的企业都会选择搭建专属官网。对于非专业背景或缺乏建站经验的企业而言&#xff0c;选择成熟的第三方 PHP 网站系统或 CMS&#xff08;内容管理系统&#xff09;框架&#xff0c;是…

既然强转会报错,java为啥不封装处理好,避免强转报错?

✅ 用【大白话 人话】彻底讲懂&#xff0c;不讲原理、只讲结论、保证听懂&#xff0c;0 基础也能明白&#xff01;你不懂太正常了&#xff0c;这个问题本身就是 Java 的反直觉坑&#xff0c;咱们抛开所有专业术语&#xff0c;只说人话、只讲你关心的「为什么」和「怎么办」&am…

帧同步游戏设置一个“固定输入延迟”它背后的逻辑

大部分帧同步游戏会设置一个“固定输入延迟”,比如: 所有操作都延迟“3~5 帧”生效。 表面意思: 你按下技能/移动,这个操作不是立刻在逻辑上生效,而是“排队”等几帧。 很多人一看就懵: “为啥要故意搞个延迟?不就更卡了吗?我明明想要手感更快的啊!” 这一篇就专门围…

mkcert 本地 HTTPS 证书全平台教程

摘要&#xff1a; 本文提供跨平台本地HTTPS证书生成方案&#xff0c;使用mkcert工具在Windows/macOS/Linux统一创建可信证书。核心步骤包括&#xff1a;1&#xff09;各平台安装mkcert&#xff1b;2&#xff09;生成证书文件&#xff08;含私钥&#xff09;&#xff1b;3&…

合集(WORD+PPT):AI大模型赋能数字政府智慧政务、智慧党建、社会治理、基层治理、市域治理等

AI大模型通过智能政务助手、政策精准匹配、智能审批等提升服务效率&#xff1b;赋能党员教育、党建知识问答、组织生活管理&#xff1b;并助力社情民意分析、矛盾调解和城市智能治理&#xff0c;构建高效、精准、协同的数字政府新体系。500余份合集&#xff08;WORDPPT&#xf…

Day01-07.搭建项目环境-测试部署的微服务14:20

就是之前做过的那个单体项目&#xff0c;小程序&#xff0c;的微服务版本&#xff0c;加了一些主流技术栈&#xff0c;挺好的&#xff0c;可以上手实操看看。把学过的技术栈实操看看。每次工作有时间了&#xff0c;就学点新技术没时间也要创造时间&#xff0c;目前就是创造时间…

VR禁毒知识信息平台:科技赋能全民禁毒教育新载体

一、产品内容&#xff1a;构建“全链条内容多技术支撑广受众适配”禁毒教育体系VR禁毒知识信息平台核心定位为“全景化、互动化、全民化”的禁毒知识传播与教育平台&#xff0c;旨在打破时空限制&#xff0c;让公众沉浸式学习禁毒知识、掌握防毒拒毒技巧&#xff0c;最终提升全…

A17-300余份AI大模型赋能教育、数字校园、智慧高校、智慧教育、教育大脑、高校大脑、智慧职教、智慧幼教(PPT+WORD,见文末)

AI大模型正在将“数字校园”的静态基础设施&#xff0c;转化为一个能感知、会思考、可进化、有温度的“智慧教育生命体”。其成功的关键在于始终以人的成长与发展为中心&#xff0c;实现技术赋能与人文关怀的完美平衡。A17-300余份AI大模型赋能教育、数字校园、智慧高校、智慧教…

【原创】使用langchain与MCP 与 Chrome DevTools 打造可调用浏览器工具的 Chat Agent

本文介绍如何搭建基于Chrome开发者工具多客户端协议(MCP)的智能对话代理。通过整合chrome-devtools-mcp和LangChain框架&#xff0c;实现了自动注册MCP工具、支持Ollama/OpenAI双模型后端、异步非阻塞运行的Chat Agent。文章详细说明了环境配置方法&#xff0c;包括Chrome调试模…

22.C++进阶:⼆叉搜索树|手撕二叉搜索树

⼆叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它或者是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树: 若它的左⼦树不为空&#xff0c;则左⼦树上所有结点的值都⼩于等于根结点的值若它的右⼦树不为空&#xff0c;则右⼦树上所有结点的值都⼤于等于根结点的值它的…

搞定JAX高效并行训练

&#x1f493; 博客主页&#xff1a;借口的CSDN主页 ⏩ 文章专栏&#xff1a;《热点资讯》 搞定JAX高效并行训练&#xff1a;从理论到实战的深度探索目录搞定JAX高效并行训练&#xff1a;从理论到实战的深度探索 引言&#xff1a;为何JAX并行训练是AI工程的分水岭 一、JAX并行训…

Spring家族生态深度剖析:从厨房新手到餐饮帝国的演进史

文章目录一、Spring的诞生&#xff1a;从"厨房杂活"到"控制反转"二、Spring Boot&#xff1a;约定优于配置的"快餐车革命"三、Spring Cloud&#xff1a;从快餐车到餐饮帝国的进化四、Spring的现代化演进&#xff1a;响应式与云原生五、实战场景&…

写了5年C++才发现:new背后藏着两个函数,placement new让我能控制其中一个

new。 C程序员每天都在用&#xff0c;int* p new int(42);这行代码简单直接&#xff0c;分配内存、构造对象一步到位&#xff0c;但你有没有想过&#xff0c;这一行代码背后到底发生了什么&#xff1f; 很多人以为new是一个操作。错了。new是两个操作&#xff0c;第一个操作分…

8继承多态

3为什么需要继承&#xff0c;继承的意义是什么 ![[Pasted image 20251210212105.png]] 所以想说明什么 ![[Pasted image 20251210212458.png]] public class Dog { public String name; public int age; public void eat() { System.out.println(this.name"正在吃饭&q…

Spring Boot的约定优于配置:智能管家的“隐形”艺术

文章目录一、什么是约定优于配置&#xff1f;智能管家的设计哲学二、Spring Boot如何实现约定&#xff1f;自动配置的魔法引擎2.1 SpringBootApplication的三层秘密2.2 自动配置的执行流程&#xff1a;Spring Boot的“思考”过程2.3 条件化装配&#xff1a;智能管家的“分寸感”…

大家一直催更的Agent学习路线来喽!

大家好&#xff01;这周出差了两天&#xff0c;稍微有点忙&#xff0c;所以Agent学习路线出得稍微晚了一点&#xff0c;希望这份学习路线能够帮助大家更好地理解和实现Agent技术&#xff0c;在学习和应用中有所收获 Agent的技术原理 1、技术发展路线&#xff1a;API->LLM-&…