AutoCompleteTextView 和 MultiAutoCompleteTextView 自动完成文本控件

概述

在html中有很多自动完成的应用,例如,百度的搜索,输入一些关键字,下面就会自动列出该关键字对应的一些消息

在Android中也有自动完成文本,这就是AutoCompleteTextVeiw和MultiAutoCompleteTextView 。

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

AutoCompleteTextVeiw和(自动完成文本框)从 EditText派生而来,MultiAutoCompleteTextView 从AutoCompleteTextVeiw派生而来,

MultiAutoCompleteTextView 允许输入多个提示项,多个提示项以分隔符分隔,多用于发送邮件和短信。

AutoCompleteTextView除了可使用EditText提供的XMl属性和方法之外,还支持如下常用的XML属性和方法

 android:completionHint  setCompletionHint(CharSequence) 设置下拉菜单中的提示标题
 android:completionHintView    设置下拉菜单中提示标题的视图
 android:completionThreshold  setThreshold(int)  设置用户至少输入几个字符才会显示提示
 adnroid:dropDownAnchor  setDropDownAnchor(int)
设置下拉菜单的定位“锚点”组件,如果没有指定该属性,

将使用该TextView本身作为定位”

 adnroid:dropDownHeight  setDropDownHeight(int)  设置下拉菜单的高度
 android:dropDownHorizontalOffest    设置下拉菜单与文本框之间的水平偏移,下拉菜单默认与文本框左对齐
 adnroid:dropDownVerticalOffest    设置下拉菜单与文本框之间的垂直偏移,下拉菜单默认紧跟文本框
 android:dropDownWidth  setDropDownWidth(int)  设置下拉菜单的宽度
 android:popupBackground  setDropDownBackgroundResource(int)  设置下拉菜单的背景

AutoCompleteTextView

使用步骤

1、初始化控件

2、设置一个适配器

3、初始化数据源--数据源去匹配文本框中输入的类容

4、将adapter与当前AutoCompleteTextView绑定

代码

XML代码:

    <AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/autoText1"
        android:hint="@string/hid_autoTip"

        android:completionThreshold="3"/> <!--输入多少个字符才开始匹配-->

Java代码:

public class MainActivity extends ActionBarActivity {

    //1、初始化控件
    private AutoCompleteTextView autoTxt1;

    //3、初始化数据源--数据源去匹配文本框中输入的类容
    private String[] res={"beijing1","beijing2","beijing3","shanghai1","shanghai2","shanghai3"};

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

        /*
        *   AutoCompleteTextView
        * 1、初始化控件
        * 2、需要一个适配器
        * 3、初始化数据源--数据源去匹配文本框中输入的类容
        * 4、将adapter与当前AutoCompleteTextView绑定
        * */

        //1、初始化控件
        autoTxt1=(AutoCompleteTextView)findViewById(R.id.autoText1);

        // 2、需要一个适配器
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);

        //4、将adapter与当前AutoCompleteTextView绑定
        autoTxt1.setAdapter(adapter);

    }
}

运行效果:

MultiAutoCompleteTextView

使用步骤

1、初始化控件

2、设置一个适配器

3、初始化数据源--数据源去匹配文本框中输入的类容

4、将adapter与当前AutoCompleteTextView绑定

5、设置分隔符

代码

XML代码:

 <MultiAutoCompleteTextView
        android:id="@+id/MAutoText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入电子邮件"
        android:layout_below="@+id/autoText1"
        />

Java代码:

public class MainActivity extends ActionBarActivity {

    // 3、初始化数据源--数据源去匹配文本框中输入的类容
    private String[] res={"beijing1","beijing2","beijing3","shanghai1","shanghai2","shanghai3"};

         /*
        *   MultiAutoCompleteTextView
        * 1、初始化控件
        * 2、创建一个适配器
        * 3、初始化数据源--数据源去匹配文本框中输入的类容
        * 4、将adapter与当前AutoCompleteTextView绑定
        * 5、设置分隔符
        * */

    //1、初始化控件
    private MultiAutoCompleteTextView MautoTxt;

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

        // 2、创建一个适配器
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res);

        MautoTxt= (MultiAutoCompleteTextView) findViewById(R.id.MAutoText);

       // 4、将adapter与当前AutoCompleteTextView绑定
        MautoTxt.setAdapter(adapter);

        //设置输入多少字符时自动匹配
        MautoTxt.setThreshold(2);

        //5、设置分隔符,设置以逗号分割符为结束符号
        MautoTxt.setTokenizer(new  MultiAutoCompleteTextView.CommaTokenizer());

    }
}

运行效果:

时间: 2024-12-06 07:45:54

AutoCompleteTextView 和 MultiAutoCompleteTextView 自动完成文本控件的相关文章

WCF学习(二)对控件简单了解以及4个文本控件的简介

WPF基础控件 系统默认提供的基础控件: 文本控件介绍与用法 Label控件 label控件:一般用户描述性文字显示. 在Label控件使用时,一般给予用户提示.用法上没有什么很特殊的,label控件的值记住:不是Text 而是 Content属性. TextBlock控件 TextBlock控件,是只读的文本框,无法进行编辑,比较适合显示文本,该文本内容不允许编辑的情况. TextBlock进行设置值的属性是Text 支持直接赋值和数据绑定的方式赋值. TextBox TextBox是支持编辑

MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/details/5866213 二.在对话框中创建视图(我这里创建的是一个滚动视图): 见博文: http://blog.csdn.net/clever101/article/details/4873994 http://blog.csdn.net/clever101/article/details/37790

4、UCGUI TEXT文本控件实验

1.常用控件 2.文本 API 函数 (1). TEXT_Create()  在一个指定位置,指定大小创建一个文本控件.TEXT_Handle TEXT_Create ( int x0, int y0,int xsize, int ysize,int Id, int Flags,const char* s, int Align);返回数值:   创建的文件控件的句柄:如果函数执行失败则为 0. (2). TEXT_CreateAsChild()  在一个指定位置,指定大小创建一个文本控件. TE

pb自动注册ole控件

方法一:  1.手工注册OCX控件 将该控件随程序一起发布,然后,将此文件拷到windows\system,或者直接放在本运行目录,然后执行dos命令,run( "regsvr32   *.ocx ") *表示具体的文件.然后写注册表,将控件注册标志置为1,在程序开始运行时,先检查该标志,是否需要进行注册 2.自动注册OCX控件 在OCX控件中一般都包含一个DLLRegisterServer函数,可以用此函数来实现OCX控件自动注册. 例如:我们要在应用中自动注册ActiveMovie

[寒江孤叶丶的Cocos2d-x之旅_33]RichTextEx一款通过HTML标签控制文字样式的富文本控件

RichTextEx一款通过HTML标签控制文字样式的富文本控件 原创文章,欢迎转载.转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列] 博客地址:http://blog.csdn.net/qq446569365 下载地址 Github链接 这个是干什么的 将例如以下文字内容 "<#F37C2A><font Helvetica><30>[世]<#3AB5B3><underLine true>寒江孤叶<underLine

富文本控件

网络上的各种富文本控件总感觉和具体项目不太贴,所以我自己动手写了一个富文本控件,是用CoreText写的.现在开放出来供所有人借鉴和使用.我写了一些基本功能,你可以方便的任意加入自己想实现的功能. 你可以任意的使用.修改.扩展这个控件,请不要删除作者信息 使用时,别忘了引入CoreText库. 演示效果如图 调用方法代码如下: 1.显示图片 - (void)showImage {     UIFont *font = [UIFont systemFontOfSize:17];          

FastReport.Net使用:[15]富文本控件使用

富文本(Rich Text)控件用于显示Rtf格式的文本. 认识富文本编辑窗体 1.下图就是富文本的编辑窗体,乍一看就像Word一样,不过功能没有Word强大了.具体功能就不一一介绍了,用个Word的相信都会使用. 值得注意的是,编辑完后一定要点击"确定"按钮,不然就前功尽弃了. 报表数据显示 富文本支持的数据与文本控件一致,包含数据源的列.报表参数.汇总值.表达式等. 参见如下设计和预览效果. 几个注意点 在报表导出的时候,有些文档中富文本控件的内容会以图片格式显示.比如Word,r

在cocos2d-js实现自动绑定cocostudioUI控件与事件(二)

前两天有个刚学习使用cocos2d-js的同事问我,怎么实现一个功能:点击一个按钮UI显示计数加1,按住不放UI计数就不停的加. 这个功能不就是个长按事件吗?我给他描述了下实现长按事件的思路: 1. 在控件touchBegan时,使用 一次性定时器scheduleOnce传入touchLong函数,设定1秒后执行. 2.  touchLong触发时,开启schedule传入addOnce函数(ui显示计数加1),设定每0.1秒执行一次. 3.  在touchEnded时执行unschedule函

在cocos2d-js实现自动绑定cocostudioUI控件与事件

一.起因 在客户端游戏开发中最让人恶心的工作就是UI相关的东西,虽然有了像cocostudio这样的可视化工具,但界面中有大量需要由代码访问的控件的时候,需要写太多重复的代码例如: //加载UI配置文件 var root = ccs.uiReader.widgetFromJsonFile("res/cocosui/UIEditorTest/UIButton_Editor/UIButton_Editor_1.json"); this._mainNode.addChild(root); /