android之填写文本自动补充AutoCompleteTextView和MultiAutoCompleteTextView
首先,我们得明确一点,虽然我们要用到的控件名称为***TextView,但是它却是可编辑的,这里可一定不要掉入陷阱哦。
当我们填写文本框的时候,是不是很希望下面可以弹出来一个下拉框提示我们呢?如果你的答案为yes,那么你肯定很希望知道AutoCompleteTextView和MultiAutoCompleteTextView.两者都位于android:widget包下。实际上,两者功能很相似,MultiAutoCompleteTextView就是从AutoCompleteTextView继承而来的。
两者的区别很简单:
AutoCompleteTextView不支持连续提示
MultiAutoCompleteTextView支持连续提示
何谓连续提示呢?
例如我们打入了两个字,这时候会出来个下拉框提示,我们点击下拉框中的某项,然后文本框中存在内容了。这时候,我们再次继续输入东西的时候,AutoCompleteTextView则不会再次提示了,而MultiAutoCompleteTextView仍旧会提示,并且会将不同的内容之间以分隔符隔开(具体使用什么分隔符,我们可以通过tokenizer进行设置)
有图为证:
第一个为AutoCompleteTextView,第二个为MultiAutoCompleteTextView。
实现的代码如下:
activity代码:
package cn.com.chenzheng_java; 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()); } }
布局文件代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="fill_parent"> <AutoCompleteTextView android:id="@+id/autoText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello kitty!" ></AutoCompleteTextView> <MultiAutoCompleteTextView android:id="@+id/autoText2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="hello kitty!" ></MultiAutoCompleteTextView> </LinearLayout>
--------------------------------------------------------------------------------
其他介绍:
completionThreshold:它的值决定了你在AutoCompleteTextView至少输入几个字符,它才会具有自动提示的功能。另,默认最多提示20条。
dropDownAnchor:它的值是一个View的ID,指定后,AutoCompleteTextView会在这个View下弹出自动提示。
dropDownSelector:应该是设置自动提示的背景色之类的,没有尝试过,有待进一步考证。
dropDownWidth:设置自动提示列表的宽度。
更多相关文章
- 我在51CTO的第一篇博客--关于6个小时调试一个小类
- Android(安卓)Framework移植----长按返回键结束程序
- Android(安卓)productFlavors 差异化打包
- 为什么我们可以在非UI线程中更新UI
- 基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android)
- Android实现使用微信登录第三方APP的方法
- Android(安卓)Studio 单元测试入门
- 如何编写高效的Android代码
- Android(安卓)Async HTTP Clients: Volley vs Retrofit