Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android資訊 >> Android UI控件系列:AutoCompleteTextView(自動提示)

Android UI控件系列:AutoCompleteTextView(自動提示)

編輯:Android資訊

AutoCompleteTextView的功能類似於百度或者Google在搜索欄輸入信息的時候,彈出的與輸入信息接近的提示信息。當然這裡要要用到一些適配器

在Android中提供了兩智能輸入框,它們是MultiAutoCompleteTextView、AutoCompleteTextView。它們的功能大致一樣,它和AutoCompleteTextView的區別就是MultiAutoCompleteTextView可以在輸入框中一直增加新的選取值。編寫方式也有所不同,在進行setAdapter之後還需要調用setTokenizer() 。下面詳細介紹一下。

一、AutoCompleteTextView

1.簡介

一個可編輯的文本視圖,當用戶輸入信息後彈出提示。提示列表顯示在一個下拉菜單中,用戶可以從中選擇一項,以完成輸入。提示列表是從一個數據適配器獲取的數據。

2.重要方法

clearListSelection():清除選中的列表項
dismissDropDown():如果存在關閉下拉菜單
getAdapter():獲取適配器

3.創建須知

(1)布局文件

<AutoCompleteTextView
 android:id="@+id/edit"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" />

(2)程序

實例化適配器

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);

設置適配器

edit.setAdapter(adapter);

二、MultiAutoCompleteTextView

1.簡介

繼承自AutoCompleteTextView,延長AutoCompleteTextView的長度,你必須要提供一個MultiAutoCompleteTextView.Tokenizer來區分不同的子串

2.重要方法

enoughToFilter():當文本長度超過阈值時過濾
performValidation():代替驗證整個文本,這個子類方法驗證每個單獨的文字標記
setTokenizer(MultiAutoCompleteTextView.Tokenizer t);用戶正在輸入時,tokenizer設置將用於確定文本相關范圍內

3.使用須知

(1)布局文件

<MultiAutoCompleteTextView
 android:id="@+id/edit1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" />

(2)程序

實例化適配器

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);

設置適配器

edit.setAdapter(adapter);

確定范圍

edit1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer())

下面是個例子

AutoCommitTest.java

package org.hualang.auto;

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

public class AutoCommitTest extends Activity {
    /** Called when the activity is first created. */
        private static final String[] autoString=new String[]{"welcome","well",
                "weatch","weexeview","werap"};
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //關聯關鍵字
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,
                        android.R.layout.simple_dropdown_item_1line,
                        autoString);
        AutoCompleteTextView autocomplete=(AutoCompleteTextView)findViewById(R.id.auto);
        autocomplete.setAdapter(adapter);
        MultiAutoCompleteTextView multi=(MultiAutoCompleteTextView) findViewById(R.id.multi);
        //將adapter添加到AutoCompleteTextView中
        multi.setAdapter(adapter);
        multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    }
}

main.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"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="自動提示功能演示"
    />
<AutoCompleteTextView
        android:id="@+id/auto"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
/>
<MultiAutoCompleteTextView
        android:id="@+id/multi"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
/>
</LinearLayout>

運行結果如下:

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved