Android開發教學
Android 開發環境配置
Android 架構
Android 應用組件
Android Hello World示例
Android 資源組織和訪問
Android Activity
Android Service
Android廣播接收器
Android內容提供者
Android碎片/片段
Android Intent過濾器
Android UI佈局
Android LinearLayout
Android RelativeLayout
Android TableLayout
Android AbsoluteLayout
Android FrameLayout
Android ListView
Android GridView
Android UI控件
Android TextView
Android EditText
Android AutoCompleteTextView
Android Button
Android ImageButton
Android CheckBox
Android ToggleButton
Android RadioButton
Android RadioGroup
Android事件處理
Android樣式和主題
Android樣式示例
Android主題示例
Android自定義組件
Android拖放
Android通知
Android基於位置服務
Android發送電子郵件
Android發送短信/SMS
Android撥打電話
發佈Android應用
ArrayAdapter
SimpleCursorAdapter
Android ProgressDialog
Android Spinner
使用活動代碼自定義Android組件
使用佈局文件自定義Android組件
Android自定義組件及屬性
Android Alertdialog(警告對話框)
Android Animation(動畫)實例
Android音頻捕獲(錄音)
Android音頻管理器實例
Android AutoCompleteTextView(自動完成)實例
Android最佳實踐
Android Bluetooth(藍牙)實例
Android Camera(攝像頭)
Android Clipboard(複製/剪貼板)
Android自定義字體
Android數據備份
Android Gestures/手勢
Android圖片效果
Android圖片切換
Android內部存儲
Android JetPlayer實例
Android JSON解析器
Android加載Spinner
Android本地化
Android登錄實例
Android MediaPlayer(多媒體播放)

Android AutoCompleteTextView(自動完成)實例

如果想獲得建議,當在一個可編輯的文本字段中鍵入,可以通過AutoCompleteTextView做到這一點。當用戶輸入它會自動提供建議。建議列表顯示在下拉菜單,從中用戶可以選擇一個項目,以取代與編輯框的內容。

爲了使用AutoCompleteTextView 需要首先在XML中創建一個AutoCompletTextView字段。其語法如下給出。

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="65dp"
android:ems="10" >

在此之後,必須在java中得到這個TextView,參考語法如下給出:

private AutoCompleteTextView actv;
actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);

需要做的下一件事就是指定要顯示的建議項目列表。可以指定列表項爲ava字符串數組或在strings.xml中。其語法如下給出。

String[] countries = getResources().
getStringArray(R.array.list_of_countries);
ArrayAdapter

adapter = new ArrayAdapter

(this,android.R.layout.simple\_list\_item\_1,countries); actv.setAdapter(adapter); 

數組適配器類負責顯示數據列表中的文本字段的視圖。setAdapter方法用於設置autoCompleteTextView的適配器。除了這些方法,自動完成的其它方法在下面列出。

Sr.No

方法及說明

1

getAdapter()
這個方法返回用於自動完成篩選列表適配器

2

getCompletionHint()
此方法返回在匹配列表的底部顯示可選的提示文本

3

getDropDownAnchor()
此方法返回返回ID視圖自動完成下拉列表固定

4

getListSelection()
此方法返回下拉視圖選擇的位置(如果有一個)

5

isPopupShowing()
此方法指示彈出式菜單是否顯示

6

setText(CharSequence text, boolean filter)
此方法設置的文本,但它可以禁用過濾

7

showDropDown()
此方法顯示在下拉屏幕上

例子

下面的例子演示瞭如何使用AutoCompleteTextView類。創建了一個基本的應用程序,在輸入並在設備上會顯示建議。

爲了試驗這個例子,需要在實際設備或模擬器運行此程序。

步驟

描述

1

使用Android Studio創建Android應用程序,並將其命名爲AutoComplete,創建這個項目確保目標SDK編譯在Android SDK的最新版本以及使用更高級別的API。

2

修改 src/MainActivity.java文件添加AutoCompleteTextView代碼

3

修改所需的佈局XML文件res/layout/activity_main.xml 添加GUI組件

4

修改 res/values/string.xml 文件,並添加必要的字符串組件

5

修改 AndroidManifest.xml 以添加必要的權限

6

運行應用程序並選擇運行Android的設備,並在其上安裝的應用並驗證結果

下面是文件 src/com.yiibai.autocomplete/MainActivity.java 的內容:

package com.yiibai.autocomplete;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;

public class MainActivity extends Activity {

private AutoCompleteTextView actv;
private MultiAutoCompleteTextView mactv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

   String\[\] countries = getResources().
   getStringArray(R.array.list\_of\_countries);
    ArrayAdapter

adapter = new ArrayAdapter

(this,android.R.layout.simple\_list\_item\_1,countries); actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); mactv = (MultiAutoCompleteTextView) findViewById (R.id.multiAutoCompleteTextView1); actv.setAdapter(adapter); mactv.setAdapter(adapter); mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 

下面是文件 activity_main.xml 的內容

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="65dp"
android:ems="10" >

  <requestFocus />

<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/autoCompleteTextView1"
android:layout_centerVertical="true"
android:ems="10" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/auto_complete"
android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/multiAutoCompleteTextView1"
android:layout_alignParentLeft="true"
android:layout_marginBottom="19dp"
android:text="@string/multi_auto_complete"
android:textAppearance="?android:attr/textAppearanceMedium" />

 

下面是文件 Strings.xml 的內容

AutoComplete
Settings
Hello world!
AutoComplete
Multi AutoComplete

USA
Uk
Canada
Australia
France
Italy
China
Japan
Spain

 

下面是文件 AndroidManifest.xml 的內容




        <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
  </activity>

讓我們試着運行Androidmanager應用程序。將安裝該應用程序在AVD,AVD將顯示如下畫面。

Anroid

現在只是在文本視圖以查看國家的建議。正如輸入兩個兩個字母這是ca,它顯示的建議是:canada

Anroid

multiAutoCompleteTextView演示建議不僅是一個單詞,同樣也可以對於整個文本。由於寫第一個字母,當開始寫入第二個字後,它會顯示建議。這可以示出在下面的圖片。

Anroid

以上代碼下載: http://pan.baidu.com/s/1o6G8Lq6