1.AutoCompleteTextView功能


  • 自动完成文本框,由EditText派生而来,是一个文本编辑框,相较普通的文本编辑框多了提示功能,即用户输入一定数量的字符后,自动完成文本框会弹出一个下拉菜单,供用户选择与之匹配的文本,选择后自动填充文本框

2.AutoCompleteTextView常用属性


属性名称 属性实例 属性描述 备注
completionThreshold android:completionThreshold=”1” 设置用户至少输入几个字符才会显示提示 Y
completionHint android:completionHint=”最近搜索记录” 设置下拉菜单中的提示标题 Y
completionHintView android:completionHintView=”@layout/auto_layout” 设置下拉菜单中提示标题的视图 Y
dropDownHeight android:dropDownHeight=”100dp” 设置下拉菜单的高度 Y
dropDownWidth android:dropDownWidth=”400dp” 设置下拉菜单的宽度 Y
dropDowmAnchor 设置下拉菜单的定位“锚点”组件,如果没有指定该属性,则该TextView本身作为定位“锚点”组件 N
dropDownHorizontalOffset 设置下拉菜单与文本框之间的水平偏移,默认与文本框左对齐 N
dropDownHorizontalOffset 设置下拉菜单与文本框之间的垂直偏移,默认紧跟文本框 N
popupBackground 设置下拉菜单的背景 N

3.AutoCompleteTextView实例


  • AutoCompleteTextView还派生了一个子类MultiAutoCompleteTextView,两个组件功能相似,只是MultiAutoCompleteTextView允许输入多个提示项,多个提示项以分隔符分隔。下面是主要布局文件:autocompletetextview.xml
<!--autocompletetextview.xml文件-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.manu.autocompletetextview.MainActivity">
<!--自动完成文本框-->
<AutoCompleteTextView
android:text="输入关键词"
android:layout_width="2984dp"
android:layout_height="wrap_content"
android:id="@+id/autoCompleteTextView"
android:completionThreshold="1"
android:completionHint="最近搜索记录"
android:completionHintView="@layout/auto_layout"
android:dropDownHeight="400dp"
android:dropDownWidth="300dp"/>
<MultiAutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/multiAutoCompleteTextView"
android:completionThreshold="1"/>
</LinearLayout>

下面是属性completionHintView的布局文件:anto_layout.xml,注意android:id=”@android:id/text1”中id为text1是由于在AutoCompleteTextView类中setCompletionHint(CharSequence)方法中使用了id为text1的TextView。

<!--:anto_layout.xml-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="最近搜索记录"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@android:id/text1"
android:paddingLeft="10dp"
android:background="#6dd6bb"
android:textSize="20sp"/>
</LinearLayout>

下面是主程序如下:

//MainActivity.java
public class MainActivity extends AppCompatActivity {
private AutoCompleteTextView autoCompleteTextView;
private MultiAutoCompleteTextView multiAutoCompleteTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得AutoCompleteTextView组件
autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
//获得MultiAutoCompleteTextView组件
multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
//创建adapter
//createFromResource(Context context,int textArrayResId,int textViewResId),看参数意思貌似比直译好。。。
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.program_languages,android.R.layout.simple_dropdown_item_1line);
//设置adapter
autoCompleteTextView.setAdapter(adapter);
multiAutoCompleteTextView.setAdapter(adapter);
//设置分隔符
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}

还有本次练习中用到的arrays.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="program_languages">
<item>JavaScript</item>
<item>Java</item>
<item>Android</item>
<item>Android studio</item>
<item>Html</item>
<item>Css</item>
<item>C++</item>
</array>
</resources>
  • 显示效果:



    学习了自动完成文本框的简单使用,记录之~

AutoCompleteTextView的简单使用的更多相关文章

  1. Android开发之AutoCompleteTextView的简单使用

    这里只谈简单的使用: 代码xml: <AutoCompleteTextView android:id="@+id/actv" android:layout_width=&qu ...

  2. Android零基础入门第47节:自动完成文本框AutoCompleteTextView

    原文:Android零基础入门第47节:自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的 ...

  3. Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类

    一.引言       AdapterView本身是一个抽象类,而它派生的子类在用法上也基本相似,只是在显示上有一定区别,因此把他们也归为一类.       AdapterView具有如下特征: Ada ...

  4. AutoCompleteTextView 简单用法 实现自定义list adapter

    网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存       下面先上我写的代码:import andro ...

  5. Android中的AutoCompleteTextView(随笔提示文本)组件的简单使用

    Android中的随笔提示文本组件AutoCompleteTextView的使用,此组件用于输入文本,然后就会在所配置的适配器中的数据进行查找显示在组件下面. 这里值得注意的是AutoComplete ...

  6. AutoCompleteTextView 简单用法

    http://blog.csdn.net/i_lovefish/article/details/17337999

  7. 用AutoCompleteTextView实现历史记录提示

    自定义AutoCompleteTextView 博客分类: android进阶 android  网上找到的都是同ArrayAdapter一起使用的,有时候需要自定义风格,咋办?follow me! ...

  8. Android--UI之AutoCompleteTextView

    前言 之前讲过EditText,有兴趣的朋友可以看一下.这篇博客主要说明的是自动完成文本框,它实际上也是一个文本编辑框,可以理解为对EditText功能的扩展,它对输入的内容可以进行提示并且自动完成. ...

  9. Android UI系列-----EditText和AutoCompleteTextView

    在这篇随笔里将主要讲解一下EditText和AutoCompleteTextView这个控件 1.EditText 首先我们先简单来说说EditText这个控件,这个就相当于我们平常web开发中的文本 ...

随机推荐

  1. fsLayuiPlugin多数据表格使用

    fsLayuiPlugin 是一个基于layui的快速开发插件,支持数据表格增删改查操作,提供通用的组件,通过配置html实现数据请求,减少前端js重复开发的工作. GitHub下载 码云下载 测试环 ...

  2. 干货--手把手撸vue移动UI框架: 滑动删除

    前言 前几天因为项目需要,用jquery写了一个swiperOut组件,然后我就随便把这个组件翻译成基于Vue的了,有兴趣的朋友可以看下.Github源码(不麻烦的话帮忙start,请各位大爷赏个星星 ...

  3. hadoop之完全分布式集群配置(centos7)

    一.基础环境 现在我们有两台虚拟机了,再克隆两台: 克隆好之后需要做三件事:1.更改主机名称 2.修改ip地址 3.将ip地址和对应的主机号加入到/etc/hosts文件中 1.永久修改主机名 hos ...

  4. NoVNC API 文档翻译

    原文地址:https://github.com/novnc/noVNC/blob/master/docs/API.md 时间:2019-05-21     noVNC API The interfac ...

  5. 【Weiss】【第03章】增补附注

    基本上每章到增补附注这里就算是结束了. 根据设想,每章的这一篇基本上会注明这一章哪些题没有做,原因是什么,如果以后打算做了也会在这里补充. 还有就是最后会把有此前诸多习题的代码和原数据结构放整理后,以 ...

  6. 【TIJ4】第四章全部习题

    第四章 没啥好说的...... 4.1 package ex0401; //[4.1]写一个程序打印从1到100的值 public class PrintOneToHundred { public s ...

  7. 042.集群网络-flannel及calico

    一 Flannel组件 1.1 flannel介绍 Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平网络空间中.若需要实现这个网络假设,需要实现不同节点上的Docker容器之间 ...

  8. Linux下MySQL主主同步

    主主复制:主从相互授权连接,读取对方binlog日志并更新到本地数据库的过程:只要对方数据改变,自己就跟着改变. 本节介绍主主复制模式的配置. 前提条件 已安装MySQL两台服务器.服务器规划示例如表 ...

  9. 简单BBS项目开始(一)

    1.BBS需求分析和创建ORM 1. 需要哪些表 1. UserInfo 1. username 2. password 3. avatar #头像图片 2. 文章表: title publish_d ...

  10. Volatile关键字回顾之线程可见性

    java中,volatile关键字有两大作用: 1.保证线程的可见性 2.防止指令重排序 这篇文章主要通过典型案例,体现可见性这一特性. 概念: java中,堆内存是线程共享的.而每个线程,都应该有自 ...