AutoCompleteTextView
1.功能
動態匹配輸入的內容,如百度搜尋引擎當輸入文字時可以根據內容顯示匹配的熱門資訊。
2.獨特屬性
android:completionThreshold="2"
——設定輸入多少字元時自動匹配
package com.example.autocompletetextview; import android.R.string; import android.os.Bundle; import android.app.Activity; import android.content.res.AssetFileDescriptor.AutoCloseInputStream; import android.view.Menu; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; public class MainActivity extends Activity{ private AutoCompleteTextView acTextView; //3 private String [] res ={"beijing1","beijing2","beijing3","beijing4","shanghai","guangzhou"}; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 第一步:初始化控制元件 // 第二步:需要一個介面卡 // 第三步:初始化資料來源——這資料來源去匹配文字框輸入的內容 // 第四步:將Adapter與當前的AutoCompleteTextview繫結 // 1 acTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); // 2 ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, res); // 4 acTextView.setAdapter(adapter); } }
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:paddingBottom="@dimen/activity_vertical_margin" 6 android:paddingLeft="@dimen/activity_horizontal_margin" 7 android:paddingRight="@dimen/activity_horizontal_margin" 8 android:paddingTop="@dimen/activity_vertical_margin" 9 tools:context=".MainActivity" > 10 <AutoCompleteTextView 11 android:completionThreshold="3" 12 android:id="@+id/autoCompleteTextView1" 13 android:layout_width="match_parent" 14 android:layout_height="wrap_content" 15 android:hint="請輸入文字" 16 android:layout_alignParentTop="true" 17 android:layout_centerHorizontal="true" 18 /> 19 </RelativeLayout>
MultiAutoCompleteTextView
1.功能
可支援選擇多個值(在多次輸入的情況下),分別用分隔符分開,並且在每個值選中的時候再次輸入值時自動去匹配,可用在發簡訊,發郵件時選擇聯絡人這種型別當中。
2.獨特屬性
android:completionThreshold="2"
——設定輸入多少個字元時自動匹配
3.設定分隔符
mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
package com.example.autocompletetextview; import android.R.string; import android.os.Bundle; import android.app.Activity; import android.content.res.AssetFileDescriptor.AutoCloseInputStream; import android.view.Menu; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.MultiAutoCompleteTextView; public class MainActivity extends Activity { /* * 可以通過這個控制元件實現類似百度搜尋的功能 */ private AutoCompleteTextView acTextView; //3 private String [] res ={"beijing1","beijing2","beijing3","beijing4","shanghai","guangzhou"}; private MultiAutoCompleteTextView maTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 第一步:初始化控制元件 // 第二步:需要一個介面卡 // 第三步:初始化資料來源——這資料來源去匹配文字框輸入的內容 // 第四步:將Adapter與當前的AutoCompleteTextview繫結 // 1 acTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1); // 2 ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, res); // 4 acTextView.setAdapter(adapter); // 第一步:初始化控制元件 // 第二步:需要一個介面卡 // 第三步:初始化資料來源——這資料來源去匹配文字框輸入的內容 // 第四步:將Adapter與當前的AutoCompleteTextview繫結 // 第五步:設定分隔符 maTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1); maTextView.setAdapter(adapter); // 設定以逗號為分隔符為結束的符號 maTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } }
AutoCompleteTextView和MultiAutoCompleteTextView的區別在於前者輸入時只提供一次匹配,而後者,在輸入後支援多次匹配
AutoCompleteTextView用在搜尋上
MultiAutoCompleteTextView用在郵箱發件等