AutoCompleteTextView的功能類似百度或Google在搜尋欄輸入資訊的時候,彈出的與輸入資訊接近的提示資訊。當然這裡要用到一些適配器
在Android中提供了兩智慧輸入框,它們是MultiAutoCompleteTextView、AutoCompleteTextView。它們的功能大致相同,它和AutoCompleteTextView的差別就是MultiAutoCompleteTextView可以在輸入框中一直增加新的選取值。編寫方式也有所不同,在進行setAdapter之後還需要呼叫setTokenizer() 。下面詳細介紹一下。
一、AutoCompleteTextView
1.簡介
一個可編輯的文字視圖,當使用者輸入資訊後彈出提示。提示清單顯示在一個下拉式選單中,使用者可以從中選擇一項,以完成輸入。提示清單是從一個資料適配器取得的資料。
2.重要方法
clearListSelection():清除選取的清單項目
dismissDropDown():如果存在關閉下拉式選單
getAdapter():取得適應器
3.建立須知符號
(2)程式
實例化適配器
<AutoCompleteTextView android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" />
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);二、MultiAutoCompleteTextView1.View
來區分不同的子字串
2.重要方法
enoughToFilter():當文本長度超過閾值時過濾
performValidation():代替驗證整個文本,這個子類方法驗證每個單獨的文字標記
setTokenizer(MultiAutoleizer(MultiAutolete t);當使用者正在輸入時,tokenizer設定將用於確定文字相關範圍內
3.使用須知
(1)佈局檔案
edit.setAdapter(adapter);
<MultiAutoCompleteTextView android:id="@+id/edit1" android:layout_width="match_parent" android:layout_height="wrap_content" />
確定範圍
實例化適配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);
確定範圍
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>
運作結果如下:
(自動提示)的內容,更多相關內容請關注PHP中文網(www.php.cn)!