AutoCompleteTextView与MultiAutoCompleteTextView学习笔记

       自动完成文本框(AutoCompleteTextView)从EditText派生而出,功能:当用户输入一定字符以后,自动完成文本框会显示一个下拉菜单,供用户选择。

      使用AutoCompleteTextView,要为它设置一个Adapter,该Adapter封装了AutoCompleteTextView预设的提示文本。

      AutoCompleteTextView还派生了一个子类:MultiAutoCompleteTextView。区别:MultiAutoCompleteTextView允许输入多个提示项,多个提示项以分隔符分隔。用setTokenizer方法来设置分隔符。


AutoCompleteTextView与MultiAutoCompleteTextView的区别:

AutoCompleteTextView:
        支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据。

MultiAutoCompleteTextView:
       该控件可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配。可用在发短信,发邮件时选择联系人这种类型当中。使用时需要执行设置分隔符方法。

java示例代码:

public class MainActivity extends Activity
{
	AutoCompleteTextView actv;
	MultiAutoCompleteTextView mauto;
	// 定义字符串数组,作为提示的文本
	String[] books = new String[]{
		"变形金刚I",
		"变形金刚II",
		"X战警I",
		"X战警II",
		"侏罗纪公园",
		"侏罗纪世界",
		"金瓶梅I",
		"金瓶梅II"
	};
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 创建一个ArrayAdapter,封装数组
		ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
			android.R.layout.simple_dropdown_item_1line, books);
		actv = (AutoCompleteTextView)findViewById(R.id.auto);
		// 设置Adapter
		actv.setAdapter(aa);
		mauto = (MultiAutoCompleteTextView)findViewById(R.id.mauto);
		// 设置Adapter
		mauto.setAdapter(aa);
		// 为MultiAutoCompleteTextView设置分隔符
		mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
	}
}
布局xml示例代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	>
<!-- 定义一个自动完成文本框
	,指定输入一个字符后进行提示 -->
<AutoCompleteTextView  
	android:id="@+id/auto"
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content" 
	android:completionHint="请选择您喜欢的电影:"
	android:dropDownHorizontalOffset="10dp"
	android:completionThreshold="2"/>   <!-- 输入2个字符会自动显示 -->
<!-- 定义一个MultiAutoCompleteTextView组件 -->
<MultiAutoCompleteTextView
    android:id="@+id/mauto"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:completionThreshold="1"/> <!-- 输入1个字符会自动显示 --> 
</LinearLayout>

显示效果:



发布了33 篇原创文章 · 获赞 5 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章