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>

顯示效果:



發佈了33 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章