我们在用百度进行google的时候,只要我们input the key word,它就会自动给我们进行一些相关的匹配,like this:
那么在Android里我们可以通过AutoCompleteTextView来进行实现。
<AutoCompleteTextView
android:completionThreshold="3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="input here"
android:id="@+id/autoCompleteTextView"
/>
控件比较简单,要注意的是属性CompletionThreshold,代表的是当输入第几个字符时开始进行匹配操作。
接下来回到我们的Activity里,因为是要做匹配的,所以需要有一些东西给它进行匹配,那么就可以简单的做一个字符串数组出来。
private String[] res = {"beijing1" , "beijing2" ,"beijing3" , "shanghai1"};
然后再通过适配器把我们的TextView和字符串数组连接起来:
ArrayAdapter adapter = new ArrayAdapter(this , android.R.layout.simple_list_item_1 ,res );
acTextView.setAdapter(adapter);
这样就ok了。
接下来要说一个与AutoCompleteTextView很接近的,叫MultiAutoCompleteTextView,它有一个特性就是可以通过我们设定的一个分隔符,以达到查找多个关键词的效果。也就是说上面的那个AutoCompleteTextView只能实现匹配一个关键词,一般是用于简单搜索方面。而MultiAutoCompleteTextView实现的是像我们在发邮件,发信息的时候,需要发给多个人的情况下用的。
<MultiAutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="input here"
android:id="@+id/multiAutoCompleteTextView"
/>
这个没什么特别的。
macTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView);
macTextView.setAdapter(adapter);
macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
这个也跟上面的没什么区别,主要是最后一句,这个表示我们用的分隔符是Comma,逗号的意思。
That is it.
参考:慕课网:Android攻城狮的第二门课。