《Android》『AutoCompleteTextView』- 自動完成文字視窗元件
《Android Developers 參考文獻》
《繼承架構》
extends EditText
implements Filter.FilterListener
↳ android.widget.AutoCompleteTextView
《簡單介紹》
AutoCompleteTextView 是一個可以自動完成文字內容的視窗元件,繼承 EditText,外觀看起來與 EditText 一樣,我們透過 Adapter 設定好其資料內容,並在之後當使用者輸入字元時,根據使用者輸入的內容,出現符合資料的下拉式選單。
《宣告與使用方式》
由於是繼承 EditText 的元件,所以 AutoCompleteTextView 類別中的很多方法與在 EditText 中的用法完全一致,以下直接透過程式碼的方式,將常用的屬性設定列出來,並說明如何宣告與使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package ... import ... public class firstActivity extends Activity { AutoCompleteTextView mAutoCompleteTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String[] str = {"Xavier","Nina","GGININ","Ming","Joe"};//定義資料內容 mAutoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, str); //宣告 Adapter mAutoCompleteTextView.setAdapter(adapter); //設定 Adapter 給 mAutoCompleteTextView mAutoCompleteTextView.setThreshold(1); //設定輸入幾個字後開始比對 mAutoCompleteTextView.setCompletionHint("提示訊息"); //設定提示訊息 mAutoCompleteTextView.setDropDownBackgroundResource(R.drawable.yellow);//設定背景圖片 mAutoCompleteTextView.setDropDownBackgroundDrawable(getResource().getDrawable(R.drawable.yellow));//設定背景圖片 mAutoCompleteTextView.setDropDownWidth(100); //設定寬度 mAutoCompleteTextView.setDropDownHeight(100); //設定高度 mAutoCompleteTextView.setOnItemClickListener(AutoCompleteTextViewOnItemClickListener); //設定 Item 點擊事件監聽器 } //定義 Item 的 OnClick 事件監聽器 private AdapterView.OnItemClickListener AutoCompleteTextViewOnItemClickListener = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { int Threshold = mAutoCompleteTextView.getThreshold(); //取得比對字元數 int DropDownWidth = mAutoCompleteTextView.getDropDownWidth(); //取得寬度 int DropDownHeight = mAutoCompleteTextView.getDropDownHeight(); //取得高度 Toast.makeText(getApplicationContext(), "你選擇了" + arg0.getItemAtPosition(arg2).toString(), Toast.LENGTH_LONG).show(); } }; } |
MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <AutoCompleteTextView android:id="@+id/autoCompleteTextView android:text="AutoCompleteTextView" android:layout_height="wrap_content" android:layout_width="match_parent" /> </LinearLayout> |
activity_main.xml
在 AutoCompleteTextView 中,我們透過 ArrayAdapter<String> 來宣告它所使用的 Adapter,因為它只需要儲存字串資料即可。
臉書留言
一般留言