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>

显示效果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值