標籤:android開發
當使用者輸入一定的字元之後,自動完成文字框能夠顯示一個下拉式功能表,供使用者從中選擇,當使用者選擇某個功能表項目之後,AutoCompleteTextView可以按照使用者的選擇自動填寫該文字框
AutoCompleteTextView是從EditText派生而出,比普通編輯框多了一個功能:輸入一定字元後,自動完成文本。
下邊我們看下它的屬性:
android:completionHint:設定下拉式功能表中的提示標題
android:completionHintView:設定下拉式功能表中提示標題的視圖
android:dropDownHeight:設定下拉式功能表的高度
android:dropDownHorizontalOffset:設定下拉式功能表與文字框之間的水平便宜,下拉式功能表預設與文字框靠左對齊
android:dropDownVerticalOffset:設定下拉式功能表與文字框之間的垂直位移,下拉式功能表預設與文字框靠左對齊
android:dropDownWidth:設定下拉式功能表的寬度
android:popupleBackground:設定下拉式功能表的背景
另外,AutonCompleteTextView派生了一個子類:MultiAutoCompleteTextView,該子類允許輸入多個提示項,每個提示項之間用分隔字元分割。
MultiAutoCompleteTextView提供setTokenizer()方法設定分隔字元。
我們首先,建立一個Android項目,然後就可以編寫main.xml檔案:
<span style="font-size:14px;"><?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:hint="請填寫您的郵箱地址"android:id="@+id/auto"android:layout_width="fill_parent" android:layout_height="wrap_content" android:dropDownHorizontalOffset="0dp"android:completionThreshold="1"/><!-- 定義一個MultiAutoCompleteTextView組件 --><MultiAutoCompleteTextView android:id="@+id/mauto"android:layout_width="fill_parent"android:layout_height="wrap_content"android:completionThreshold="1"/></LinearLayout></span>
然後,我們編寫java代碼,AutoCompleteTextViewTest.java:
<span style="font-size:14px;">package org.crazyit.ui;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.Button;import android.widget.MultiAutoCompleteTextView;import android.widget.TextView;public class AutoCompleteTextViewTest extends Activity{AutoCompleteTextView actv;MultiAutoCompleteTextView mauto;// 定義字串數組,作為提示的文本String[] books = new String[]{"[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]",};@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 建立一個ArrayAdapter,封裝數組ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, books);actv = (AutoCompleteTextView)findViewById(R.id.auto);// 設定Adapteractv.setAdapter(aa);mauto = (MultiAutoCompleteTextView)findViewById(R.id.mauto);// 設定Adaptermauto.setAdapter(aa);// 為MultiAutoCompleteTextView設定分隔字元mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());}}</span>
如下:
Android開發系列(二十):AutoCompleteTextView(自動完成文字框)的功能和用法