搜索自动匹配功能,如下图。
主要用到两个控件的运用。
1.AutoCompleteTextView 只匹配一次。
2.MultiAutoCompleteTextView 多次匹配,每次匹配完会以一个符号断开然后根据接下来输入的内容继续匹配。以及他们的一个属性:
android:completionThreshold="3" // 当输入的字符数量为3的时候开始匹配。
第一种:
首先我们需要实例化对象,定义一个数组用来存放被搜索的内容,然后添加适配器。运用适配器来将输入的内容与数组中的内容匹配。
实例化控件,定义数组。
autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
private String[] ass = {"beijing1", "beijing2", "beijing3", "beijing4", "beijing5", "beijing6","shanghai1","shanghai2","shanghai3"};
适配器
multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ass);
然后给控件绑定适配器
autoCompleteTextView.setAdapter(adapter);
以上就完成了第一种。
第二种:
实例化对象,添加数组
multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
private String[] ass = {"beijing1", "beijing2", "beijing3", "beijing4", "beijing5", "beijing6","shanghai1","shanghai2","shanghai3"};
添加适配器,然后绑定ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ass);
multiAutoCompleteTextView.setAdapter(adapter);
然后设置断开的符号,这里用逗号(教程里是用的这个)
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
两种匹配方法都可以同时用一个存储数据的数组,也可以用同一个适配器适配。