情境
當你輸入某些資料的時候,你會希望系統從資料庫撈出一些資料讓你參考,
例如你想找電話號碼,當你輸入 09 的時候,你會希望下方跳出一個視窗,
出現很多系統電話簿的號碼,這個功能就是靠 AutoCompleteTextView 來完成。
完整程式碼
如果你需要完整程式碼,可以到 GitHub 上觀看或下載。
程式碼說明
首先定義一個 AutoCompleteTextView 在 XML,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_margin="16sp"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Input some data..."
android:id="@+id/auto_complete_text" />
</RelativeLayout>
由於這個例子是為了示範怎麼簡單使用 AutoCompleteTextView,因此,就不從資料庫撈資料來示範了。
我們自訂一個字串陣列,輸入一些單字,
class MainActivity : AppCompatActivity() {
private val vocabulary = arrayListOf("apple", "application", "appal", "appalachia", "apposite")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val adapter = ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, vocabulary)
auto_complete_text.threshold = 1
auto_complete_text.setAdapter(adapter)
}
}
最後結果顯示如下圖。
官網 上面解釋 Threshold 這個參數是來判斷當輸入到第幾個字以後會出現下拉候選字,我們目前設定為 1,這樣代表輸入一個字就會開始顯示了。
這樣就是一個簡單的 AutoCompleteTextView 範例了。