MultiAutoCompleteTextView
继承自AutoCompleteTextView,它和AutoCompleteTextView不同的就是能处理多个输入字段,如发送短信界面的联系人列表,同时能编辑多个联系人,并且能够提示。
用户必须提供一个MultiAutoCompleteTextView.Tokenizer以用来区分不同的子串。
CommaTokenizer使用“,”来区分
首先是activity_main.xml中设置布局
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" > 4 5 <MultiAutoCompleteTextView 6 android:id="@+id/multi_actv" 7 android:layout_width="match_parent" 8 android:layout_height="wrap_content" /> 9 10 </RelativeLayout>
然后在MainActivity中找到MultiAutoCompleteTextView ,并设置适配器
1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.widget.ArrayAdapter; 4 import android.widget.MultiAutoCompleteTextView; 5 6 public class MainActivity extends Activity { 7 8 //数据源 9 String[] data = {"zhangsan","wangwu","zhaoliu","tianqi","sunba","wanger"}; 10 11 @Override 12 protected void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main); 15 //显示 16 MultiAutoCompleteTextView multi = (MultiAutoCompleteTextView) findViewById(R.id.multi_actv); 17 //适配器 18 ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data); 19 multi.setAdapter(adapter); 20 multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 21 } 22 23 24 }
在上面的适配器中,
ArrayAdapter的构造方法有很多种,这里用的也是其中一种,然后不给定组件id,资源id直接调用系统的
android.R.layout.simple_list_item_1
运行效果如图