自动完成文本框-AutoCompleteTextView和MultiAutoCompleteTextView

来源:互联网 发布:淘宝买hiv试纸准确吗 编辑:程序博客网 时间:2024/06/06 12:20

看看效果
这里写图片描述

自动完成文本框是从EditText派生出来的,实际上也是一个文本编辑框,但是比普通的编辑框多了一个功能:当用户输入一定字符之后,自动完成文本框会显示一个下拉菜单,供给用户从中选择,当用户选择某个菜单选项之后,AutoCompleteTextView按照用户的选择自动填写改文本框

其属性有

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要为他设置一个带预设文字的Adapter,
AutoCompleteTextView还有一个子类,MultiAutoCompleteTextView,他的功能与AutoCompleteTextView基本一样,不同的是MultiAutoCompleteTextView支持提示多次,也就是允许输入多个提示项,多个提示以分隔符分隔,方法为setTokenizer()

下面来看看demo的具体实现:

<AutoCompleteTextView        android:id="@+id/actv"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:completionHint="请选择..."        android:completionThreshold="1"/>    <MultiAutoCompleteTextView        android:id="@+id/mauto"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:completionThreshold="1"/>

然后就是实例化,添加要显示的数据,设置adapter:

private AutoCompleteTextView actv;    private MultiAutoCompleteTextView mauto;    private String[] words = {"bear","board","block","break","sdfsdfadfadf","black","blue"};
  //创建一个ArrayAdapter,封装数组        ArrayAdapter<String> mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, words);        actv = (AutoCompleteTextView) findViewById(R.id.actv);        //设置adapter        actv.setAdapter(mAdapter);        //可以多次选择        mauto = (MultiAutoCompleteTextView) findViewById(R.id.mauto);        mauto.setAdapter(mAdapter);        //设置分割符,单词之间用逗号        mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

是不是很简单呢

0 0
原创粉丝点击