自動(dòng)完成文本框從EditText派生而出镀首,實(shí)際上也就是個(gè)文本框但是當(dāng)用戶輸入一定字符之后横缔,會(huì)顯示一個(gè)菜單供用戶選擇纠修,選完后自動(dòng)填寫祝拯。
android:completionHint:設(shè)置下拉菜單中的提示標(biāo)題
android:completionHintView:定義提示視圖中顯示下拉菜單
android:completionThreshold:指定用戶至少輸入多少個(gè)字符才會(huì)顯示提示
android:dropDownAnchor:設(shè)置下拉菜單的定位"錨點(diǎn)"組件滤愕,如果沒有指定改屬性温算, 將使用該TextView作為定位"錨點(diǎn)"組件
android:dropDownHeight:設(shè)置下拉菜單的高度
android:dropDownWidth:設(shè)置下拉菜單的寬度
android:dropDownHorizontalOffset:指定下拉菜單與文本之間的水平間距
android:dropDownVerticalOffset:指定下拉菜單與文本之間的豎直間距
android:dropDownSelector:設(shè)置下拉菜單點(diǎn)擊效果
android:popupBackground:設(shè)置下拉菜單的背景
使用AutoComplete TextView很簡(jiǎn)單,只需要為他設(shè)置一個(gè)adapter即可间影,該adapter封裝了AutoComplete TextView預(yù)設(shè)的提示文本
AutoCompleteTextView還派生一個(gè)MultiAtuoCompleteTextView注竿,該子類的功能與AutoCompleteTextView基本相似,只是MultiAtuoCompleteTextView允許輸入多個(gè)提示項(xiàng)魂贬,多個(gè)提示項(xiàng)以分隔符分隔巩割,MultiAtuoCompleteTextView提供setTokenizer()方法設(shè)置分隔符。
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
//定義一個(gè)自動(dòng)完成文本框付燥,指定輸入一個(gè)字符后提示
<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="請(qǐng)選擇你喜歡的圖書"
android:dropDownHorizontalOffset="10dp"
android:completionThreshold="1"/>
//定義一個(gè)組件
<MultiAutoCompleteTextView
android:id="@+id/mauto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"/>
</LinearLayout>
下面他們綁定同一個(gè)adapter所以提示內(nèi)容一樣
activity代碼:
package com.example.myapplication;
import android.util.Log;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private String[] books=new String[]{"瘋狂Java講義","瘋狂前端開發(fā)","瘋狂xml講義","瘋狂workflow講義"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//創(chuàng)建一個(gè)Arrayadapter宣谈,封裝數(shù)組
ArrayAdapter adapter1=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,books);
//android.R.layout.simple_dropdown_item_1line 默認(rèn)的下拉條目樣式
AutoCompleteTextView actv=findViewById(R.id.auto);
//設(shè)置adapter
actv.setAdapter(adapter1);
MultiAutoCompleteTextView mauto=findViewById(R.id.mauto);
mauto.setAdapter(adapter1);
//為MultiAutoCompleteTextView設(shè)置分隔符
mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
最后效果圖
那個(gè),键科。闻丑。。勋颖。額嗦嗡,由于虛擬機(jī)不知道什么原因輸入不了文字,所以下載apk然后用手機(jī)截的圖饭玲,有點(diǎn)大哈侥祭。