首先,我們得明確一點,雖然我們要用到的控制項名稱為***TextView,但是它卻是可編輯的,這裡可一定不要掉入陷阱哦。
當我們填寫文字框的時候,是不是很希望下面可以彈出來一個下拉框提示我們呢?如果你的答案為yes,那麼你肯定很希望知道AutoCompleteTextView和MultiAutoCompleteTextView.兩者都位於android:widget包下。實際上,兩者功能很相似,MultiAutoCompleteTextView就是從AutoCompleteTextView繼承而來的。
兩者的區別很簡單:
AutoCompleteTextView不支援連續提示
MultiAutoCompleteTextView支援連續提示
何謂連續提示呢?
例如我們打入了兩個字,這時候會出來個下拉框提示,我們點擊下拉框中的某項,然後文字框中存在內容了。這時候,我們再次繼續輸入東西的時候,AutoCompleteTextView則不會再次提示了,而MultiAutoCompleteTextView仍舊會提示,並且會將不同的內容之間以分隔字元隔開(具體使用什麼分隔字元,我們可以通過tokenizer進行設定)
有圖為證:
第一個為AutoCompleteTextView,第二個為MultiAutoCompleteTextView。
實現的代碼如下:
activity代碼:
package cn.com.chenzheng_java;</p><p>import android.app.Activity;<br />import android.os.Bundle;<br />import android.widget.ArrayAdapter;<br />import android.widget.AutoCompleteTextView;<br />import android.widget.MultiAutoCompleteTextView;</p><p>public class AutoComplateTextActivity extends Activity {<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.autocomplatetextview);</p><p> AutoCompleteTextView t = (AutoCompleteTextView)findViewById(R.id.autoText);<br /> String[] auto={"aaa","bcde","cderef","aagdgfdgf","aaffff"};<br /> ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, auto) ;<br /> t.setAdapter(adapter);</p><p> MultiAutoCompleteTextView multiAutoCompleteTextView = (MultiAutoCompleteTextView)findViewById(R.id.autoText2);<br /> multiAutoCompleteTextView.setAdapter(adapter);<br /> multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());</p><p> }<br />}
布局檔案代碼:
<?xml version="1.0" encoding="utf-8"?><br /><LinearLayout<br /> xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:layout_width="fill_parent"<br /> android:orientation="vertical"<br /> android:layout_height="fill_parent"><br /> <AutoCompleteTextView<br /> android:id="@+id/autoText"<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> android:text="hello kitty!"<br /> ></AutoCompleteTextView><br /> <MultiAutoCompleteTextView<br /> android:id="@+id/autoText2"<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> android:text="hello kitty!"<br /> ></MultiAutoCompleteTextView><br /></LinearLayout><br />
--------------------------------------------------------------------------------
其他介紹:
completionThreshold:它的值決定了你在AutoCompleteTextView至少輸入幾個字元,它才會具有自動提示的功能。另,預設最多提示20條。
dropDownAnchor:它的值是一個View的ID,指定後,AutoCompleteTextView會在這個View下彈出自動提示。
dropDownSelector:應該是設定自動提示的背景色之類的,沒有嘗試過,有待進一步考證。
dropDownWidth:設定自動提示列表的寬度。