Android ArrayAdapter MultiAutoCompleteTextView

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

 运行效果如图

原文地址:https://www.cnblogs.com/Claire6649/p/5951979.html