博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MultiAutoCompleteTextView和AutoCompleteTextView两个自动完成功能控件的使用
阅读量:6549 次
发布时间:2019-06-24

本文共 3239 字,大约阅读时间需要 10 分钟。

MultiAutoCompleteTextView

可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配

可用在发短信,发邮件时选择联系人这种类型当中。

使用时需要执行设置分隔符方法

 

AutoCompleteTextView

支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据

 

两个控件都可以很灵活的预置匹配的那些数据,并且可以设置输入多少值时开始匹配等等功能

 

效果图

 

示例:

主布局文件

multi_textview.xml

 

Xml代码  
  1. <MultiAutoCompleteTextView  
  2.         android:layout_height="wrap_content" android:layout_width="fill_parent"  
  3.         android:id="@+id/multi_txt"></MultiAutoCompleteTextView>  
  4.     <AutoCompleteTextView  
  5.         android:layout_height="wrap_content" android:layout_width="fill_parent"  
  6.         android:id="@+id/auto_txt"></AutoCompleteTextView>  

 

 

 

数据适配布局文件

multi_item.xml

 

Xml代码  
  1. <TextView android:id="@+id/subject"  
  2.     xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent" android:layout_height="30px"  
  4.     android:singleLine="true"    
  5.     android:ellipsize="end" />  

 

 

 

资源文件

string.xml

 

Xml代码  
  1. <resources>  
  2.     <string-array name="mutilstring">  
  3.         <item>test1</item>  
  4.         <item>test2</item>  
  5.         <item>test3</item>  
  6.     </string-array>  
  7. </resources>  
test1
test2
test3

 

 

 

执行数据绑定

 

Java代码  
  1. //数据适配准备   
  2. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,   
  3.         R.layout.multi_item, getResources().getStringArray(   
  4.                 R.array.mutilstring));   
  5.   
  6. //多匹配的自动完成   
  7. MultiAutoCompleteTextView mtxt = (MultiAutoCompleteTextView) findViewById(R.id.multi_txt);   
  8. //设置适配   
  9. mtxt.setAdapter(adapter);   
  10. // 设置输入多少字符时自动匹配   
  11. mtxt.setThreshold(2);   
  12. // 设置分隔符   
  13. mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());   
  14.   
  15. //单一的自动完成   
  16. AutoCompleteTextView auto_txt = (AutoCompleteTextView) findViewById(R.id.auto_txt);   
  17. auto_txt.setAdapter(adapter);  

//

**************************************************************************************

MultiAutoCompleteTextView补充

一、结构

  public class MultiAutoCompleteTextView extends AutoCompleteTextView
  java.lang.Object
  android.view.View
  android.widget.TextView
  android.widget.EditText
  android.widget.AutoCompleteTextView
  android.widget.MultiAutoCompleteTextView
  二、 类概述

  一个继承自AutoCompleteTextView的可编辑的文本视图,能够对用户键入的文本进行有效地扩充提示,而不需要用户输入整个内容。(用户输入一部分内容,剩下的部分系统就会给予提示)。
  用户必须提供一个MultiAutoCompleteTextView.Tokenizer以用来区分不同的子串。
  下面的代码片段展示了如何创建一个文本视图,这个视图用来对用户输入的国家名称进行有效地补充提示。

  三、公共方法
  public boolean enoughToFilter ()
  此方法并不是检验什么时候文本的总长度超过了预定的值,而是在仅当从函数findTokenStart()到getSelectionEnd()函数得到的文本长度为0或者超过了预定值的时候才起作用。(译者注:当文本长度超过阈值时过滤)
  public void performValidation ()
  此子类方法并不是用来确定整个文本的有效性,而是用来确定文本中的单个符号的有效性。空标记将被移除。
  public void setTokenizer (MultiAutoCompleteTextView.Tokenizer t)
  设置用来决定用户正在输入文本的范围的分词组件。
  四、 受保护方法
  protected void performFiltering (CharSequence text, int keyCode)
  此方法并不过滤整个编辑框的内容,只是过滤从函数findTokenStart() 到函数getSelectionEnd()获得的长度为0或者超过了预定的值的文本内容。
  参数
  text          指定过滤模式
  keyCode           插入到编辑框中的最后一个字符;当字符(文本)是通过软键盘输入的时候,小心此字符的值可能为NULL。
  protected void performFiltering (CharSequence text, int start, int end, int keyCode)
  启动对下拉式列表内容的过滤。过滤模式为编辑框中指定的范围。子类可覆盖此方法,以便于采用一个不同的模式。
  protected void replaceText (CharSequence text)
  通过替换从函数findTokenStart() 到函数 getSelectionEnd()得到的文本文本范围以及传递给函数terminateToken()的文版返回的结果来实现文本的输入。另外,文本的替换区域将会被标记为自动文本区,这样如果用户直接按DEL键,执行过程就会停止。子类可覆盖此方法来实现许多不同的文本插入工作。
  参数
  text          下拉列表里的选中项

转载于:https://www.cnblogs.com/qingblog/archive/2012/05/21/2511572.html

你可能感兴趣的文章
Yslow
查看>>
Axure产品原型设计工具
查看>>
ASM文件系统
查看>>
ajax学习笔记(原生js的ajax)
查看>>
mysql 函数 事务
查看>>
1312 连续自然数和
查看>>
进程/线程介绍
查看>>
SPSS-Friedman 秩和检验-非参数检验-K个相关样本检验 案例解析
查看>>
java UDP server
查看>>
Windows MongoDB安装配置
查看>>
大数据开发实战:Hive优化实战3-大表join大表优化
查看>>
Windows如何使用jstack跟踪异常代码
查看>>
js手动生成Json数据
查看>>
当Ucenter和应用通信失败,DZ数据库备份恢复
查看>>
Memcached
查看>>
项目启动前的准备工作(随笔一)
查看>>
海量Web日志分析 用Hadoop提取KPI统计指标
查看>>
关于失败
查看>>
Oracle 事务的開始与结束
查看>>
“神一般存在”的印度理工学院到底有多牛?
查看>>