Android開發系列(二十):AutoCompleteTextView(自動完成文字框)的功能和用法

來源:互聯網
上載者:User

標籤: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(自動完成文字框)的功能和用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.