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用在邮箱发件等