一MultiAutoCompleteTextView
用MultiAutoCompleteTextView实现自动匹配,只要输入关键字就可以匹配到你想要的内容,可以设置输入多少值时开始匹配,然后选择你要的内容
二MultiAutoCompleteTextView
可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配
可用在发短信,发邮件时选择联系人这种类型当中。
使用时需要执行设置分隔符方法
三布局文件如下所示:
代码如下:
<?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:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="cn.edu.bzu.autocompelettextview.MainActivity">
<AutoCompleteTextView
android:hint="请输入你要搜索的关键词"
android:completionThreshold="2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/autoCompleteTextView1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
/>
<MultiAutoCompleteTextView
android:hint="请输入你的收件人"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/autoCompleteTextView1"
android:layout_alignParentLeft="true"
android:layout_marginTop="32dp"
android:id="@+id/multiAutoCompleteTextView1" />
</RelativeLayout>
四编写界面交互代码
代码如下:
package cn.edu.bzu.autocompelettextview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
private AutoCompleteTextView autoCompleteTextView;
private String [] p={"shanghai1","shanghai2","shanghai3","beijing1","beijing2","beijing2"};
private MultiAutoCompleteTextView mla;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
*第一步:初始化对象
*第二步:需要一个适配器
*第三步:初始化数据源——要匹配的内容
*第四步:将adapter与当前Auto。。绑定
*/
autoCompleteTextView=(AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
ArrayAdapter <String> adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, p);
autoCompleteTextView.setAdapter(adapter);
//同上
mla=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);
mla.setAdapter(adapter);
mla.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}