首先,我們得明确一點,雖然我們要用到的控件名稱為***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:設定自動提示清單的寬度。