Android ApiDemo学习(四)Views——2 autocomplete

本文共6个实例。在用百度搜索时,当你输入一两个字,输入框下会自动提示一些热门的词汇。这个功能就是autocomplete。android也提供了这项功能。

  • Screen Top、Screen Bottom、Scroll

Screen Top:布局文件为autocomplete_1,可以看到有一个AutoCompleteTextView标签,这个控件就是可以显示提示词的TextView。那么这些提示词从哪里来呢?需要有个提示词的集合。使用Adapter将这个提示词集合和AutoCompleteTextView关联起来。

Screen Bottom和Scroll:这两例是为了说明:AutoCompleteTextView的提示框会自动根据控件的位置显示在控件的上方或者下方。

  • Contacts,Contacts with Hint

Contacts:本例中的提示词不再是自定义的,而是从Contacts即联系人资料中来。关于Contacts的用法,请参照Android ApiDemo学习(三)Activity(2)中的QuickContactsDemo一例。

在布局文件中,可以看到AutoCompleteTextView的一个属性copletionThreshold,这个属性的值为x,表示当用户输入了x个字符时开始给提示。

可以看到,本例和之前例的不同之处主要是在Adapter上。本例自定义了一个ContactListAdapter继承了CursorAdapter并实现接口Filterable。

Contacts with Hint:本例和上例唯一的区别是,提示列表的最下方有一小行字:Typing * will show all of your contacts。可以给用户一些提示信息。实现这个功能只需要在AutoCompleteTextView的completionHint属性中添加要提示的字符串即可。

  • Multiple items

首先看布局文件autocomplete_6.xml中,输入框不再是AutoCompleteTextView,而是MultiAutoCompleteTextView。然后是AutoComplete6.java代码中,除了为这个view设置了adapter之外,还setTokenizer。这是什么作用呢?

假设用户需要在输入框内输入国家的名称。那么当输入了a之后,提示australia、american等国家的名字。然后用户输入“,”,又输入c,这时用户希望继续看到以c开头的国家的名字。也就是说,用户输入的是一个列表,提示需要匹配这个列表的每一项。MultiAutoCompleteTextView就是完成这种功能的。setTokenizer就是设这用户输入的列表项的间隔符“,”的。

 

 

 

你可能感兴趣的:(Android ApiDemo学习(四)Views——2 autocomplete)