AutoCompleteTextView


功能:

动态匹配输入的内容,如搜索框提示待搜索信息,只能选一个;


独特属性:

android:completionThreshold="2" 设置输入多少个字符后开始自动匹配


新建一个AutoCompleteTextView:

<AutoCompleteTextView
    android:id="@+id/actext1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入你要搜索的内容"
    android:completionThreshold="3"
    />

MainActivity中编辑:

MainActivity AppCompatActivity {

    AutoCompleteTextView ;
    String[] ={,,,,
            ,,,,};
    onCreate(Bundle savedInstanceState) {
        .onCreate(savedInstanceState);
        setContentView(R.layout.);

        = (AutoCompleteTextView) findViewById(R.id.);
        ArrayAdapter<String> adap=ArrayAdapter<String>(,
                android.R.layout.,);
        //        
        .setAdapter(adap);
    }
}

MultiAutoCompleteTextView

功能:

可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动匹配,可用在发短信,发邮件时选择联系人这种类型中。


独特属性:

android:completionThreshold="2" 设置输入多少个字符后开始自动匹配


设置分隔符:

mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());


新建View:

<MultiAutoCompleteTextView
    android:id="@+id/mactext1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入收件人"
    android:completionThreshold="3"  //如果不设置默认是2
    android:layout_marginTop="30dp"
    />
    
初始化:
private String[] res={"beijing1","beijing2","beijing3","shanghai1",
        "shanghai2","shanghai3","guangzhou1","guangzhou2","guangzhou3"};

private MultiAutoCompleteTextView mact1;

分布操作:
 /***
 * 1、初始化控件
 *
 *2、 创建一个匹配器
 *
 * 3、初始化数据源--去匹配文本框中输入的内容
 *
 * 4、将adap与AutoCompleteTextView绑定
 *
 * 5、设置分隔符
 */
mact1= (MultiAutoCompleteTextView) findViewById(R.id.mactext1);
ArrayAdapter<String> adap=new ArrayAdapter<String>(this,
        android.R.layout.simple_expandable_list_item_1,res);
mact1.setAdapter(adap);



//设置以逗号为分隔符:
mact1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());