[Android] AutoCompleteTextView:自動完成輸入內容的控制元件
阿新 • • 發佈:2019-02-09
AutoCompleteTextView是EditText的直接子類,與普通EditText的最大不同就是,在使用者輸入的過程中,可以列出可供選擇的輸入項,方便使用者。
AutoCompleteTextView與普通EditText控制元件使用方法類似,只是需要為其指定一個Adapter物件,繫結可供選擇的輸入項。
AutoCompleteTextView可實現一次自動完成的功能,而另一個控制元件MultiAutoCompleteTextView,可以連續多次自動完成,即在通過自動完成一個輸入項,接著輸入一個分隔符後,繼續通過自動完成連續輸入多個輸入項。只是要使用MultiAutoCompleteTextView類的setTokenizer方法指定分割符。
兩種自動完成輸入內容的控制元件例項如下。
Main.java
package mobile.android.ch05.autotext;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
public class Main extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] autoString = new String[]
{ "聯合國", "聯合國安理會", "聯合國五個常任理事國", "bb", "bcd", "bcdf", "Google",
"Google Map", "Google Android" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, autoString);
// AutoCompleteTextView
AutoCompleteTextView autoCompleteTextView =
(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
autoCompleteTextView.setAdapter(adapter); // 繫結adapter
// MultiAutoCompleteTextView
MultiAutoCompleteTextView multiAutoCompleteTextView =
(MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
multiAutoCompleteTextView.setAdapter(adapter);
multiAutoCompleteTextView
.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="AutoCompleteTextView" />
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="MultiAutoCompleteTextView" />
<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
程式執行效果如下圖
rr 的