当前位置: 首页 > news >正文

Android EditText筛选+选择功能开发

在日常开发中经常会遇到这种需求,EditText既需要可以筛选,又可以点击选择。这里筛选功能用的是AutoCompleteTextView,选择功能使用的是第三方库https://github.com/kongzue/DialogX。

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

布局文件: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"><AutoCompleteTextViewandroid:id="@+id/atv_content"android:layout_width="match_parent"android:layout_height="48dp"android:completionHint="请输入搜索内容"android:completionThreshold="1"android:dropDownHorizontalOffset="5dp" /><MultiAutoCompleteTextViewandroid: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[]{"小猪猪", "小狗狗", "小鸡鸡", "小猫猫", "小咪咪"};@Overrideprotected 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());}
}

相关属性:

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

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

此外,还增加了一些UI方面的交互体验,使用起来更丝滑。

需要源码的可去下载,为了交互体验也是花了不少时间:https://download.csdn.net/download/iromkoear/88335284?spm=1001.2014.3001.5501

http://www.lryc.cn/news/172050.html

相关文章:

  • Linux 信号 alarm函数 setitimer函数
  • 自主设计,模拟实现 RabbitMQ - 实现发送方消息确认机制
  • 【数据结构】二叉树的·深度优先遍历(前中后序遍历)and·广度优先(层序遍历)
  • 优彩云采集器下载-免费优彩云采集器下载地址
  • 【Python】OJ 常用函数
  • 【Vue】上万个字把事件处理讲解的淋漓尽致
  • Remmina中VNC、SSH和RDP的区别
  • Spring Boot实现web.xml功能
  • 陆拾捌- 如何通过数据影响决策(三)
  • VMware 三种网络连接模式
  • Scikit-Learn快速生成分类数据集
  • 西门子 S7 协议解析
  • 一、python解题——求序列最长递增
  • 【Java 基础篇】Java线程:volatile关键字与原子操作详解
  • 992. K 个不同整数的子数组
  • Vue 使用vue-cli构建SPA项目(超详细)
  • SpringBoot工程模板
  • 学习SLAM:SLAM进阶(十)暴力更改ROS中的PCL库
  • js 事件流、事件冒泡、事件捕获、阻止事件的传播
  • 一家美国公司被黑,一个拉美国家政务服务瘫痪
  • c++ QT 十八位时间戳转换
  • 全国职业技能大赛云计算--高职组赛题卷④(容器云)
  • 【TCP】延时应答 与 捎带应答
  • URL与URI小结
  • QT--day5
  • 在windows和linux上玩转Tensorrt
  • 七天学会C语言-第五天(函数)
  • 340. 至多包含 K 个不同字符的最长子串
  • 【分布式计算】副本数据Replicated Data
  • erlang练习题(二)