首先,我们得明确一点,虽然我们要用到的控件名称为***TextView,但是它却是可编辑的,这里可一定不要掉入陷阱哦。
当我们填写文本框的时候,是不是很希望下面可以弹出来一个下拉框提示我们呢?如果你的答案为yes,那么你肯定很希望知道AutoCompleteTextView和MultiAutoCompleteTextView.两者都位于android:widget包下。实际上,两者功能很相似,MultiAutoCompleteTextView就是从AutoCompleteTextView继承而来的。
两者的区别很简单:
AutoCompleteTextView不支持连续提示
MultiAutoCompleteTextView支持连续提示
何谓连续提示呢?
例如我们打入了两个字,这时候会出来个下拉框提示,我们点击下拉框中的某项,然后文本框中存在内容了。这时候,我们再次继续输入东西的时候,AutoCompleteTextView则不会再次提示了,而MultiAutoCompleteTextView仍旧会提示,并且会将不同的内容之间以分隔符隔开(具体使用什么分隔符,我们可以通过tokenizer进行设置)
有图为证:
第一个为AutoCompleteTextView,第二个为MultiAutoCompleteTextView。
实现的代码如下:
activity代码:
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
public class AutoComplateTextActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.autocomplatetextview);
AutoCompleteTextView t = (AutoCompleteTextView)findViewById(R.id.autoText);
String[] auto={"aaa","bcde","cderef","aagdgfdgf","aaffff"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, auto) ;
t.setAdapter(adapter);
MultiAutoCompleteTextView multiAutoCompleteTextView = (MultiAutoCompleteTextView)findViewById(R.id.autoText2);
multiAutoCompleteTextView.setAdapter(adapter);
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
布局文件代码:
--------------------------------------------------------------------------------
其他介绍:
completionThreshold:它的值决定了你在AutoCompleteTextView至少输入几个字符,它才会具有自动提示的功能。另,默认最多提示20条。
dropDownAnchor:它的值是一个View的ID,指定后,AutoCompleteTextView会在这个View下弹出自动提示。
dropDownSelector:应该是设置自动提示的背景色之类的,没有尝试过,有待进一步考证。
dropDownWidth:设置自动提示列表的宽度。