首頁  >  文章  >  後端開發  >  Android UI控制系列:AutoCompleteTextView(自動提示)

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

黄舟
黄舟原創
2017-01-19 09:34:532059瀏覽

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);

二、MultiAutoCompleteTextView

1.View

來區分不同的子字串

2.重要方法

enoughToFilter():當文本長度超過閾值時過濾

performValidation():代替驗證整個文本,這個子類方法驗證每個單獨的文字標記

setTokenizer(MultiAutoleizer(MultiAutolete t);當使用者正在輸入時,tokenizer設定將用於確定文字相關範圍內
3.使用須知

(1)佈局檔案

edit.setAdapter(adapter);

(2)程式

實例化適配器

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

運作結果如下:

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

Android UI控制系列:AutoCompleteTextView(自動提示) (自動提示)的內容,更多相關內容請關注PHP中文網(www.php.cn)!

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn