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. H5页面通用头部设置

    见到很多人写H5页面都不设置头部,不忍直视,于是整理一篇文章,不定期更新,为了让自己显得专业一点,也为了方便自己复制粘贴 一般来说必须设置项 <!-- 页面编码 --> <meta ...

  2. JavaScript两道例题

    1.有一个卡车司机肇事后想逃跑,但是被三个人看见其车牌号码,但是没有看全.一号说:车牌的前两位是一样的,二号说:车牌的后两位是一 样的,但是与前两位不一样,三号说:车牌是一个数字的平方,请计算车辆号牌 ...

  3. Linux 常见目录

    /bin 二进制目录,存放许多用户级的GNU工具 /boot 启动目录,存放启动文件 /dev 设备目录,Linux在这里创建设备节点 /etc 系统配置文件目录 /home 用户目录 /lib 库目 ...

  4. vue 动态加载图片路径报错解决方法

    最近遇到图片路径加载报错的问题 之前一直都是把图片放到assets的文件下的.总是报错,看到一些文章并且尝试成功了,特意记录下 首先先说明下vue-cli的assets和static的两个文件的区别, ...

  5. WEB渗透 - SQL注入(持续更新)

    SQL注入 按变量类型分:数字型和字符型 按HTTP提交方式分:POST注入.GET注入和Cookie注入 按注入方式分:布尔注入.联合注入.多语句注入.报错注入.延时注入.内联注入 按数据库类型分: ...

  6. flask修改flask_wtf使其支持json数据的validation验证

    flask默认是前后端不分离策略,前端通过flask+wtf表单来传递post,put...等数据. 现在前后端分离是趋势,那么对flask进行一定的修改,变为前后端分离,在前端页面中请求后端,那么请 ...

  7. 使用mitmproxy抓包手机APP的配置步骤

    转: https://www.jianshu.com/p/8ee3f9f46d7a 注意 1. 手机安装完证书之后还有一步 “证书信任设置” 操作 2. 手机设置代理的时候 ip地址和电脑本机是一样的

  8. 搭建Java开发环境之配置环境变量

    前言 初学Java不久的二胖在搭建Java开发环境一步就遇到问题,他不由得感叹:万事开头难啊!但感叹之后它还是鼓足了劲去努力解决它,二胖在电脑上Google了一番,最终环境是搭建成功了,但他心中对&q ...

  9. 利用mnist数据集进行深度神经网络

    初始神经网络 这里要解决的问题是,将手写数字的灰度图像(28 像素 x28 像素)划分到 10 个类别中(0~9).我们将使用 MINST 数据集,它是机器学习领域的一个经典数据集,其历史几乎和这个领 ...

  10. let和var在for循环中的不同表现

    var声明变量: var只有函数作用域,没有块级作用域 //函数作用域的表现 function test(){ var i =10; console.log(i); } test(); console ...