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

    运行效果:

  • 相关阅读:
    Android开发开源一款结合databinding写的用于RecyclerView的简单高效MultiTypeAdapter
    Android开发databinding和RecyclerView.ViewHolder的完美结合
    Android开发华为手机不弹出Toast,报HwRTBlurUtils: check blur style for HwToast-Toast...的原因
    android开发Toolbar标题居中显示的解决方法
    记录使用xshell通过ssh方式连接Linux机器的步骤
    同一局域网内手机访问电脑本地localhost网页的方法
    Gradle里面的依赖implementation和api的真正理解
    Android开发使用kotlin编写的泛型模式的MVP框架
    nyoj-3-多边形重心问题(求多边形面积和中心)
    nyoj-1132-promise me a medal(求线段交点)
  • 原文地址:https://www.cnblogs.com/jesn/p/4304369.html
Copyright © 2020-2023  润新知