AutoCompleteTextView
按下去变红色
MultiAutoCompleteTextView(用逗号可以添加多个关键字)
AutoCompleteTextView,MultiAutoCompleteTextView都可以在输入时完成匹配。后者是前者的子类,只不过可以匹配多个字符,字符间用“,”来分割。一般我们不用什么高级的adapter来放置数据,直接用ArrayAdapter是个比较好的选择
先看一下他们的属性:
android:completionHint 下拉列表下面的标题
android:completionHintView 设置下拉菜单中提示标题的视图
android:completionThreshold 设置用户输入多少字符才会出现提示
android:dropDownAnchor 下拉列表的“锚点”或挂载点,如果不设置,则用textView本身作为“锚点”
android:dropDownHeight 下拉列表高度
android:dropDownWidth 下拉列表宽度
android:dropDownHorizontalOffset 下拉列表距离左边的距离
android:dropDownVericalOffset 下拉菜单和文本之间的垂直偏移量
android:dropDownSelector 下拉列表被选中的行的背景
package com.kale.autocompletetextview; import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView; public class MainActivity extends Activity { AutoCompleteTextView acTv;
MultiAutoCompleteTextView mcTv;
String []books = new String[] {
"android",
"java",
"xml",
"Ant"
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//创建一个adapter来封装数组
ArrayAdapter<String> aa = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line,books);
acTv = (AutoCompleteTextView)findViewById(R.id.auto_autoCompleteTv_id);
acTv.setAdapter(aa); mcTv = (MultiAutoCompleteTextView)findViewById(R.id.multi_autoCompleteTv_id);
mcTv.setAdapter(aa);
//为其设置分割符
mcTv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); }
}
xml文件
<RelativeLayout 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"> <!-- completionHint设置下拉菜单中的标题 -->
<!--
android:completionHint 下拉列表下面的标题
android:completionHintView 设置下拉菜单中提示标题的视图
android:completionThreshold 设置用户输入多少字符才会出现提示
android:dropDownAnchor 下拉列表的“锚点”或挂载点,如果不设置,则用textView本身作为“锚点”
android:dropDownHeight 下拉列表高度
android:dropDownWidth 下拉列表宽度
android:dropDownHorizontalOffset 下拉列表距离左边的距离
android:dropDownVericalOffset 下拉菜单和文本之间的垂直偏移量
android:dropDownSelector 下拉列表被选中的行的背景
--> <AutoCompleteTextView
android:id="@+id/auto_autoCompleteTv_id"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:completionHint="这里显示的是提示字符"
android:dropDownHorizontalOffset="10dp"
android:dropDownVerticalOffset="10dp"
android:dropDownHeight="150dp"
android:completionThreshold="1"
android:dropDownSelector="#ff0000"
/> <MultiAutoCompleteTextView
android:id="@+id/multi_autoCompleteTv_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:completionThreshold="1"/> </RelativeLayout>