AutoCompleteTextView

 按下去变红色

MultiAutoCompleteTextView(用逗号可以添加多个关键字)

AutoCompleteTextView,MultiAutoCompleteTextView都可以在输入时完成匹配。后者是前者的子类,只不过可以匹配多个字符,字符间用“,”来分割。一般我们不用什么高级的adapter来放置数据,直接用ArrayAdapter是个比较好的选择

先看一下他们的属性:

android:completionHint                   下拉列表下面的标题
android:completionHintView           设置下拉菜单中提示标题的视图
android:completionThreshold          设置用户输入多少字符才会出现提示
android:dropDownAnchor               下拉列表的“锚点”或挂载点,如果不设置,则用textView本身作为“锚点”
android:dropDownHeight                下拉列表高度
android:dropDownWidth                 下拉列表宽度
android:dropDownHorizontalOffset 下拉列表距离左边的距离
android:dropDownVericalOffset      下拉菜单和文本之间的垂直偏移量
android:dropDownSelector             下拉列表被选中的行的背景

package com.kale.autocompletetextview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView; public class MainActivity extends Activity { AutoCompleteTextView acTv;
MultiAutoCompleteTextView mcTv;
String []books = new String[] {
"android",
"java",
"xml",
"Ant"
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个adapter来封装数组
ArrayAdapter<String> aa = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line,books);
acTv = (AutoCompleteTextView)findViewById(R.id.auto_autoCompleteTv_id);
acTv.setAdapter(aa); mcTv = (MultiAutoCompleteTextView)findViewById(R.id.multi_autoCompleteTv_id);
mcTv.setAdapter(aa);
//为其设置分割符
mcTv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); }
}

xml文件

<RelativeLayout 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"> <!-- completionHint设置下拉菜单中的标题 -->
<!--
android:completionHint 下拉列表下面的标题
android:completionHintView 设置下拉菜单中提示标题的视图
android:completionThreshold 设置用户输入多少字符才会出现提示
android:dropDownAnchor 下拉列表的“锚点”或挂载点,如果不设置,则用textView本身作为“锚点”
android:dropDownHeight 下拉列表高度
android:dropDownWidth 下拉列表宽度
android:dropDownHorizontalOffset 下拉列表距离左边的距离
android:dropDownVericalOffset 下拉菜单和文本之间的垂直偏移量
android:dropDownSelector 下拉列表被选中的行的背景
--> <AutoCompleteTextView
android:id="@+id/auto_autoCompleteTv_id"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:completionHint="这里显示的是提示字符"
android:dropDownHorizontalOffset="10dp"
android:dropDownVerticalOffset="10dp"
android:dropDownHeight="150dp"
android:completionThreshold="1"
android:dropDownSelector="#ff0000"
/> <MultiAutoCompleteTextView
android:id="@+id/multi_autoCompleteTv_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:completionThreshold="1"/> </RelativeLayout>

源码下载:http://download.csdn.net/detail/shark0017/7647965

AutoCompleteTextView,MultiAutoCompleteTextView 用法举例的更多相关文章

  1. c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例

    c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...

  2. 【转】awk 里的substr函数用法举例

    awk 里的substr函数用法举例: 要截取的内容:2007-08-04 04:45:03.084 - SuccessfulTradeResult(status: 1, currencyPair: ...

  3. 12. nc/netcat 用法举例

    nc命令用法举例 什么是nc nc是netcat的简写,有着网络界的瑞士军刀美誉.因为它短小精悍.功能实用,被设计为一个简单.可靠的网络工具 nc的作用 (1)实现任意TCP/UDP端口的侦听,nc可 ...

  4. 线程框架Executor的用法举例

    java5线程框架Executor的用法举例 Executor 是 java5 下的一个多任务并发执行框架(Doug Lea),可以建立一个类似数据库连接池的线程池来执行任务.这个框架主要由三个接口和 ...

  5. java8中的localdate和localtime用法举例

    java8中的localdate和localtime用法举例如下:这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,然后通过Instant来创建Loca ...

  6. sql的游标用法举例(Cursor)

    sql的游标用法举例 ), ) Declare authors_cursor Cursor For Select Name,TrueName From Account Open authors_cur ...

  7. mysql操作查询结果case when then else end用法举例

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex          WHEN '1' THEN '男'          WHEN '2' THEN ...

  8. python yield用法举例说明

    1  yield基本用法 典型的例子: 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到.1 2 3 5 8…… def fab(ma ...

  9. django models 中choices之用法举例

    CHOICES常用做单选属性,下面举例在django models中人物性别的用法: 我们先定义一个模型,名字为Students ,这个Students 包含了名字和性别两个字段,代码如下: from ...

随机推荐

  1. Net WebAPI2

    SwaggerUI ASP.Net WebAPI2   目前在用ASP.NET的 WebAPI2来做后台接口开发,在与前台做测试的时候,总是需要发送一个demo给他,但是这样很麻烦的,他还有可能记不住 ...

  2. 【深入Struts2】获取ServletAPI的三种方式

    一:获取servletAPI的三种方法 在传统的Web开发中,经常会用到Servlet API中的HttpServletRequest.HttpSession和ServletContext.Strut ...

  3. HDU - 1525

    题意:给你两个数,a,b,有两个人轮流进行一次操作, 每次操作可以将大的数减去k倍的小的数,最后不能操作的人输了,问你谁赢了. 思路:我们可以用辗转相除法求出对于每一个状态可以改变几次,这样问题就变成 ...

  4. 配置免SSH

    在要远程登录别人的服务器中生成授权标识:ssh-keygen -t rsa上传至需被免登录的服务器:scp ~/.ssh/id_rsa.pub root@xx.xx.xx.xx:/root/.ssh/ ...

  5. SSIS组件——Merge、Merge Join、Union All

  6. redis 使用管道提升写入的性能[pipeline]

    看了手册的都知道multi这个命令的作用就好比是mysql的事务的功能,但是大家都知道事务吗,就是在操作的过程中,把整个操作当作一个原子来处理,避免由于中途出错而导致最后产生的数据不一致,而产生BUG ...

  7. linux 输入设备驱动

    <输入子系统简介> a:背景 内核的输入子系统是对“分散的”,“多种不同类别”的输入设备(键盘,鼠标,跟踪杆,触摸屏,加速度计等)进行“统一处理”的驱动程序.具有如下特点: a-1:统一各 ...

  8. Linux设备驱动之USB

    Linux驱动框架分析(一)        事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的 ...

  9. 每日踩坑 2018-12-25 【Unable to convert MySQL date/time value to System.DateTime】异常

    之前的公司一直是用 ORM ,所以底层的事情完全不用在意, 到了这家全是似乎全是 SQL 硬编码 所以也有机会重新去补补以前也没怎么写过的基本 ADO. 不过这两天总有自己写个简易ORM的想法在蠢蠢欲 ...

  10. 使用Newlife网络库管道模式解决数据粘包(二)

    上一篇我们讲了 如何创建一个基本的Newlife网络服务端 这边我们来讲一下如何解决粘包的问题 在上一篇总我们注册了Newlife的管道处理器 ,我们来看看他是如何实现粘包处理的 svr.Add< ...