Android MultiAutoCompleteTextView
我们在前面章节 Android AutoCompleteTextView 自动完成文本框 介绍了自动提示控件 AutoCompleteTextView
MultiAutoCompleteTextView
( 多项自动完成文本框 ) 继承自 AutoCompleteTextView
,除了有自动完成功能,还支持分隔符分隔的多个自动完成
MultiAutoCompleteTextView
创建一个 MultiAutoCompleteTextView
也很简单
<MultiAutoCompleteTextView android:id="tag" android:layout_width="match_parent" android:layout_height="wrap_content" />
MultiAutoCompleteTextView
有很多属性,不过这些属性都继承自 AutoCompleteTextView
MultiAutoCompleteTextView 属性
属性 | 说明 |
---|---|
android:completionHint | 设置下拉菜单中的提示标题 |
android:completionHintView | 定义提示视图中显示下拉菜单 |
android:completionThreshold | 指定用户至少输入多少个字符才会显示提示 |
android:dropDownAnchor | 设置下拉菜单的定位"锚点"组件,如果没有指定改属性,将使用该TextView作为定位"锚点"组件 |
android:dropDownHeight | 设置下拉菜单的高度 |
android:dropDownWidth | 设置下拉菜单的宽度 |
android:dropDownHorizontalOffset | 指定下拉菜单与文本之间的水平间距 |
android:dropDownVerticalOffset | 指定下拉菜单与文本之间的竖直间距 |
android:dropDownSelector | 设置下拉菜单点击效果 |
android:popupBackground | 设置下拉菜单的背景 |
-
创建一个 空的 Android 项目
cn.twle.android.MultiAutoCompleteTextView
-
修改
activity_main.xml
添加一个AutoCompleteTextView
<?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dp"> <MultiAutoCompleteTextView android:id="@+id/tag" android:layout_width="300dp" android:layout_height="wrap_content" android:completionThreshold="1"/> </LinearLayout>
-
android:completionThreshold="1"
设置了输入一个字就显示提示
-
-
修改
MainActivity.java
添加数据package cn.twle.android.multiautocompletetextview; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.MultiAutoCompleteTextView; import android.widget.ArrayAdapter; public class MainActivity extends AppCompatActivity { private MultiAutoCompleteTextView tag; private static final String[] data = new String[]{ "python", "perl", "php", "java", "swift","c++","c","c#","javascript","ruby" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tag = (MultiAutoCompleteTextView) findViewById(R.id.tag); ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity. this, android.R.layout.simple_dropdown_item_1line, data); tag.setAdapter(adapter); // 设置分隔符 tag.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } }