看看效果
自動完成文本框是從EditText派生出來的,實際上也是一個文本編輯框,但是比普通的編輯框多了一個功能:當用戶輸入一定字符之后,自動完成文本框會顯示一個下拉菜單,供給用戶從中選擇,當用戶選擇某個菜單選項之后,AutoCompleteTextView按照用戶的選擇自動填寫改文本框
其屬性有
android:completionHint setCompletionHint(CharSequence) 設置下拉菜單中的提示標題android:completionHintView 設置下拉菜單中提示標題的視圖android:completionThreshold setThreshold(int) 設置用戶至少輸入幾個字符才會顯示提示adnroid:dropDownAnchor setDropDownAnchor(int) 設置下拉菜單的定位“錨點”組件,如果沒有指定該屬性,將使用該TextView本身作為定位”錨點“組件adnroid:dropDownHeight setDropDownHeight(int) 設置下拉菜單的高度android:dropDownHorizontalOffest 設置下拉菜單與文本框之間的水平偏移,下拉菜單默認與文本框左對齊adnroid:dropDownVerticalOffest 設置下拉菜單與文本框之間的垂直偏移,下拉菜單默認緊跟文本框android:dropDownWidth setDropDownWidth(int) 設置下拉菜單的寬度android:popupBackground setDropDownBackgroundResource(int) 設置下拉菜單的背景使用AutoCompleteTextView要為他設置一個帶預設文字的Adapter, AutoCompleteTextView還有一個子類,MultiAutoCompleteTextView,他的功能與AutoCompleteTextView基本一樣,不同的是MultiAutoCompleteTextView支持提示多次,也就是允許輸入多個提示項,多個提示以分隔符分隔,方法為setTokenizer()
下面來看看demo的具體實現:
<AutoCompleteTextView android:id="@+id/actv" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionHint="請選擇..." android:completionThreshold="1"/> <MultiAutoCompleteTextView android:id="@+id/mauto" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="1"/>然后就是實例化,添加要顯示的數據,設置adapter:
PRivate AutoCompleteTextView actv; private MultiAutoCompleteTextView mauto; private String[] Words = {"bear","board","block","break","sdfsdfadfadf","black","blue"}; //創建一個ArrayAdapter,封裝數組 ArrayAdapter<String> mAdapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, words); actv = (AutoCompleteTextView) findViewById(R.id.actv); //設置adapter actv.setAdapter(mAdapter); //可以多次選擇 mauto = (MultiAutoCompleteTextView) findViewById(R.id.mauto); mauto.setAdapter(mAdapter); //設置分割符,單詞之間用逗號 mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());是不是很簡單呢
新聞熱點
疑難解答