多次输入-内容自动完成文本框(MultiAutoCompleteTextView)
多次输入-内容自动完成文本框(MultiAutoCompleteTextView)
除了AutoCompleteTextView控件外,我们还可以使用MultiAutoCompleteTextView控件来完成连续输入的功能。也就是说,当输入完一个字符串后,在该字符串后面输入一个逗号(,),在逗号前后可以有任意多个空格,然后再输入一个字符串,仍然会显示自动提示列表。
使用MultiAutoCompleteTextView时,需要为它的setTokenizer方法指定MultiAutoCompleteTextView.CommaTokenizer类对象实例,
该对象表示采用逗号作为输入多个字符串的分隔符。
You must provide a mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); |
1、布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:hint="输入可以提示,多个输入用逗号分隔"
>
<requestFocus />
</MultiAutoCompleteTextView>
</LinearLayout>
|
2、核心代码: package cn.zengfansheng.multiautocompletetextview; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.MultiAutoCompleteTextView; public class MainActivity extends Activity {
private MultiAutoCompleteTextView mactv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mactv = (MultiAutoCompleteTextView) this.findViewById(R.id.multiAutoCompleteTextView);
String[] names = { "老张", "老方", "老毕", "李明", "李丽", "陈江", "abc", "acc" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_dropdown_item_1line, names);
mactv.setAdapter(adapter);
mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); // 一定要设置:多次输入的分隔符为逗号
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
} |
3、结果 : |