自动匹配输入的内容(文章最后有一个问题有兴趣的可以解答一下,谢谢大神了)

这个主要是两个控件MultiAutoCompleteTextView和AutoCompleteTextView

这两个控件和TextView的主要区别就是可以自动匹配用户输入的内容,就像百度,在百度的搜索框中输入信息时,会提示你一些信息

这两个控件的属性主要比TextView多了一个属性   android:completionThreshold="2",这个属性主要是来说明用户输入多少字符时开始匹配(我这里是两个字符);

(1)先讲一下AutoCompleteTextView的实现

布局文件中有关的代码如下(主要的属性大家都认识,绿色的为特有的属性)

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView1"
android:hint="请输入内容"
android:textColor="#000000"
android:completionThreshold="2"
>
<requestFocus />
</AutoCompleteTextView>

在源代码文件中的代码为

private AutoCompleteTextView auTextView;

String []res={"ab1","ab2","ab3","ab4","ab5"};

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auTextView=(AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
//定义适配器并且添加适配器
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, res);
auTextView.setAdapter(adapter);

}

效果图如下:

(2)MultiAutoCompleteTextView的实现

它和AutoCompleteTextView的主要区别就在于它可以多次匹配,只要定义了分隔符,而AutoCompleteTextView只可以进行一次匹配

它在布局文件中的代码为

<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/autoCompleteTextView1"
android:layout_marginTop="24dp"
android:textColor="#000000"
android:completionThreshold="2"
android:hint="请输入内容" />

它在代码文件中的代码为:

private MultiAutoCompleteTextView muTextView;
String []res={"ab1","ab2","ab3","ab4","ab5"};

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//定义适配器并且添加适配器
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, res);

muTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);
muTextView.setAdapter(adapter);
//设置逗号分隔符
muTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}

效果图如下:

那个设置分隔符的时候我不太懂我查了一下主要是用到了new MultiAutoCompleteTextView.CommaTokenizer(),不知道为什么这个就是逗号分隔符,希望大神可以解答,谢谢

有什么错误的地方请指出,谢谢

我的android学习经历12的更多相关文章

  1. 我的android学习经历

    我为什么选择android? 我基本上前一年的时间都是在学习java的语法和线程之类的,没有注意java的分类,所以到现在慢慢接触到深处的时候我了解到,java的优势主要在web,而我不是特别喜欢网页 ...

  2. 我的android学习经历36

    最近把android的基础知识都学的差不多了,也写了许多demo,就想自己写一个app,可是写到后面的时候发现很混乱,所以还是得写一些文档,用xml语言写一下基础的类以及一些其他的东西.所以要想写一个 ...

  3. 我的android学习经历27

    前几天忙着学校的互联网+项目比赛,没有时间学习android和发一些东西,主要是这两天太累了,我是项目组长,好多东西去弄,今天已经交稿去进行初赛. 马上收拾收拾心情,继续我的andorid菜鸟之路 加 ...

  4. 我的android学习经历23

    学习fragment时遇到的问题 这几天学习fragment静态加载时遇到这样的问题: java.lang.RuntimeException: Unable to start activity Com ...

  5. android学习笔记12——ListView、ListActivity

    ListView.ListActivity ==> ListView以垂直列表的形式显示所有列表项. 创建ListView的方式: 1.直接使用ListView创建 2.Activity继承Li ...

  6. Android学习系列(12)--App列表之拖拽GridView

    根据前面文章中ListView拖拽的实现原理,我们也是很容易实现推拽GridView的,下面我就以相同步骤实现基本的GridView拖拽效果.     因为GridView不用做分组处理,代码处理起来 ...

  7. 我的android学习经历9

    给android的activity添加背景图片 1.你可以在网上下载android的图片,也可以制作自己的图片,图片的后缀为.png,也就是png格式的图片(注意图片的大小要适合你的手机屏幕或者AVD ...

  8. 我的android学习经历7

    android签名后报错的问题 Duplicate id @+id/imageView, already defined earlier in this layout,android生成报错 这个是项 ...

  9. 我的android学习经历5

    android在strings.xml文件中,写string对象时,如何加入空格 <string name="password">密    码:</string& ...

随机推荐

  1. RTX发送消息提醒实现以及注意事项

    一.RTX简介 RTX是腾讯公司推出的企业级即时通信平台.该平台定位于降低企业通信费用,增强企业内部沟通能力,改善企业与客户之间的沟通渠道,创造新兴的企业沟通文化,提高企业生产力.RTX平台的主要功能 ...

  2. Android 学习笔记之如何实现简单相机功能

    PS:看来算法和数据结构还是非常有用的,以后每天都练习两道算法题目...这次忘了对代码进行折叠了..导致篇幅过长... 学习内容: 1.Android如何实现相机功能... 2.如何实现音频的录制.. ...

  3. struts2基础——请求与响应、获取web资源

    一.请求与响应 Action1.含义:(1) struts.xml 中的 action 元素,也指 from 表单的 action 属性,总之代表一个 struts2 请求.(2) 用于处理 Stru ...

  4. Spring MVC 配置文件dispatcher-servlet.xml 文件详解

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  5. JS 数组去重的几个方法

    Array.prototype.unique1 = function () { var n = []; //一个新的临时数组 for (var i = 0; i < this.length; i ...

  6. EF增删查改(三)------终极版

    1.Add #region 1.1 新增学生信息(定义成Int类型,返回受影响的行数) /// <summary> /// 新增学生信息 /// </summary> /// ...

  7. Linux各版本的本地root密码破解方法

    (一)RedHat/CentOS/Fedora 系统密码破解 1.在grub选项菜单按E进入编辑模式 2.编辑kernel 那行最后加上S (或者Single) 3.按B,启动到single-user ...

  8. 2015年百度之星初赛(1) --- A 超级赛亚ACMer

    超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem D ...

  9. 二维KMP - 求字符矩阵的最小覆盖矩阵 - poj 2185

    Milking Grid Problem's Link:http://poj.org/problem?id=2185 Mean: 给你一个n*m的字符矩阵,让你求这个字符矩阵的最小覆盖矩阵,输出这个最 ...

  10. 重构第19天 提取工厂类(Extract Factory Class)

    理解:本文中的“提取工厂类”是指如果要创建的对象很多,则代码会变的很复杂.一种很好的方法就是提取工厂类. 详解:一般来说我们需要在代码中设置一些对象,以便获得它们的状态,从而使用对象,所谓的设置通常来 ...