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());

    }
}

运行效果:

原文地址:https://www.cnblogs.com/jesn/p/4304369.html