如何使用AutoCompleteTextView(kotlin)

如何使用AutoCompleteTextView(kotlin)

情境

當你輸入某些資料的時候,你會希望系統從資料庫撈出一些資料讓你參考,
例如你想找電話號碼,當你輸入 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 範例了。