首页 > 学院 > 开发设计 > 正文

自动完成文本框-AutoCompleteTextView和MultiAutoCompleteTextView

2019-11-06 10:03:42
字体:
来源:转载
供稿:网友

看看效果 这里写图片描述

自动完成文本框是从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());

是不是很简单呢


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表