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

Android AutoCompleteTextView(自動(dòng)完成)實(shí)例

如果想獲得建議,當(dāng)在一個(gè)可編輯的文本字段中鍵入,可以通過AutoCompleteTextView做到這一點(diǎn)。當(dāng)用戶輸入它會(huì)自動(dòng)提供建議。建議列表顯示在下拉菜單,從中用戶可以選擇一個(gè)項(xiàng)目,以取代與編輯框的內(nèi)容。

為了使用AutoCompleteTextView 需要首先在XML中創(chuàng)建一個(gè)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中得到這個(gè)TextView,參考語法如下給出:

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

需要做的下一件事就是指定要顯示的建議項(xiàng)目列表??梢灾付斜眄?xiàng)為ava字符串?dāng)?shù)組或在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);

數(shù)組適配器類負(fù)責(zé)顯示數(shù)據(jù)列表中的文本字段的視圖。setAdapter方法用于設(shè)置autoCompleteTextView的適配器。除了這些方法,自動(dòng)完成的其它方法在下面列出。

Sr.No 方法及說明
1 getAdapter()
這個(gè)方法返回用于自動(dòng)完成篩選列表適配器
2 getCompletionHint()
此方法返回在匹配列表的底部顯示可選的提示文本
3 getDropDownAnchor()
此方法返回返回ID視圖自動(dòng)完成下拉列表固定
4 getListSelection()
此方法返回下拉視圖選擇的位置(如果有一個(gè))
5 isPopupShowing()
此方法指示彈出式菜單是否顯示
6 setText(CharSequence text, boolean filter)
此方法設(shè)置的文本,但它可以禁用過濾
7 showDropDown()
此方法顯示在下拉屏幕上

例子

下面的例子演示了如何使用AutoCompleteTextView類。創(chuàng)建了一個(gè)基本的應(yīng)用程序,在輸入并在設(shè)備上會(huì)顯示建議。

為了試驗(yàn)這個(gè)例子,需要在實(shí)際設(shè)備或模擬器運(yùn)行此程序。

步驟 描述
1 使用Android Studio創(chuàng)建Android應(yīng)用程序,并將其命名為AutoComplete,創(chuàng)建這個(gè)項(xiàng)目確保目標(biāo)SDK編譯在Android SDK的最新版本以及使用更高級(jí)別的API。
2 修改 src/MainActivity.java文件添加AutoCompleteTextView代碼
3 修改所需的布局XML文件res/layout/activity_main.xml 添加GUI組件
4 修改 res/values/string.xml 文件,并添加必要的字符串組件
5 修改 AndroidManifest.xml 以添加必要的權(quán)限
6 運(yùn)行應(yīng)用程序并選擇運(yùn)行Android的設(shè)備,并在其上安裝的應(yīng)用并驗(yàn)證結(jié)果

下面是文件 src/com.yiibai.autocomplete/MainActivity.java 的內(nèi)容:

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 的內(nèi)容

<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 />
   </AutoCompleteTextView>

   <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" />

</RelativeLayout> 

下面是文件 Strings.xml 的內(nèi)容

<?xml version="1.0" encoding="utf-8"?>
<resources>

   <string name="app_name">AutoComplete</string>
   <string name="action_settings">Settings</string>
   <string name="hello_world">Hello world!</string>
   <string name="auto_complete">AutoComplete</string>
   <string name="multi_auto_complete">Multi AutoComplete</string>
   <string-array name="list_of_countries">
      <item >USA</item>
      <item >Uk</item>
      <item >Canada</item>
      <item >Australia</item>
      <item >France</item>
      <item >Italy</item>
      <item >China</item>
      <item >Japan</item>
      <item >Spain</item>
      </string-array>

</resources> 

下面是文件 AndroidManifest.xml 的內(nèi)容

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.yiibai.autocomplete"
   android:versionCode="1"
   android:versionName="1.0" >

   <uses-sdk
      android:minSdkVersion="8"
      android:targetSdkVersion="17" />

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      <activity
         android:name="com.yiibai.autocomplete.MainActivity"
         android:label="@string/app_name" >
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

</manifest>

讓我們試著運(yùn)行Androidmanager應(yīng)用程序。將安裝該應(yīng)用程序在AVD,AVD將顯示如下畫面。

Anroid Capture Tutorial

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

Anroid Capture Tutorial

multiAutoCompleteTextView演示建議不僅是一個(gè)單詞,同樣也可以對于整個(gè)文本。由于寫第一個(gè)字母,當(dāng)開始寫入第二個(gè)字后,它會(huì)顯示建議。這可以示出在下面的圖片。

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