自动匹配 AutoCompleteTextView 自动完成文本框

 

AutoCompleteTextView和EditText一样都可以输入文本。但它可以和适配器绑定,当用户输入两个及以上字符时,系统将根据适配器提供的内容,进行文本的自动匹配提示。这个Web开发中Ajax里的一个标志性的功能,现在被Android弄成了一个标准组件。下面我们通过一个例子来学习一下:

1、建一个新的项目,打开res/values/strings.xml文件,写入如下代码:

view source
print ?
01 < ?xml version="1.0" encoding="utf-8"?>
02 <RESOURCES>
03     <STRING name="app_name">HelloAutoCompleteTextViewSTRING>
04         <STRING name="province" -array>
05         <ITEM>shan dongITEM>
06         <ITEM>jiang suITEM>
07         <ITEM>an huiITEM>
08         <ITEM>zhe jiangITEM>
09         <ITEM>fu jianITEM>
10         <ITEM>shang haiITEM>
11         <ITEM>guang dongITEM>
12         <ITEM>guang xiITEM>
13         <ITEM>hai nanITEM>
14         <ITEM>hu beiITEM>
15         <ITEM>hu nanITEM>
16         <ITEM>he nanITEM>
17         <ITEM>jiang xiITEM>
18         <ITEM>bei jingITEM>
19         <ITEM>tian jinITEM>
20         <ITEM>he beiITEM>
21         <ITEM>shan xiITEM>
22         <ITEM>nei meng guITEM>
23         <ITEM>ning xiaITEM>
24         <ITEM>xin jiangITEM>
25         <ITEM>qing haiITEM>
26         <ITEM>shan xiITEM>
27         <ITEM>gan suITEM>
28         <ITEM>si chuanITEM>
29         <ITEM>yun nanITEM>
30         <ITEM>gui zhouITEM>
31         <ITEM>xi zangITEM>
32         <ITEM>chong qingITEM>
33         <ITEM>liao ningITEM>
34         <ITEM>ji linITEM>
35         <ITEM>hei long jiangITEM>
36         <ITEM>tai wanITEM>
37         <ITEM>xiang guangITEM>
38         <ITEM>ao men ITEM>
39         <ITEM>山东ITEM>
40         <ITEM>江苏ITEM>
41         <ITEM>安徽ITEM>
42         <ITEM>浙江ITEM>
43         <ITEM>福建ITEM>
44         <ITEM>上海ITEM>
45         <ITEM>广东ITEM>
46         <ITEM>广西ITEM>
47         <ITEM>海南ITEM>
48         <ITEM>湖北ITEM>
49         <ITEM>湖南ITEM>
50         <ITEM>河南ITEM>
51         <ITEM>江西ITEM>
52         <ITEM>北京ITEM>
53         <ITEM>天津ITEM>
54         <ITEM>河北ITEM>
55         <ITEM>山西ITEM>
56         <ITEM>内蒙古ITEM>
57         <ITEM>宁夏ITEM>
58         <ITEM>新疆ITEM>
59         <ITEM>青海ITEM>
60         <ITEM>陕西ITEM>
61         <ITEM>甘肃ITEM>
62         <ITEM>四川ITEM>
63         <ITEM>云南ITEM>
64         <ITEM>贵州ITEM>
65         <ITEM>西藏ITEM>
66         <ITEM>重庆ITEM>
67         <ITEM>辽宁ITEM>
68         <ITEM>吉林ITEM>
69         <ITEM>黑龙江ITEM>
70         <ITEM>台湾ITEM>
71         <ITEM>香港ITEM>
72         <ITEM>澳门ITEM>
73     STRING>
74 RESOURCES>

2、打开res/layout/main.xml 写入如下内容:

view source
print ?
1 < ?xml version="1.0" encoding="utf-8"?>
2 <LINEARLAYOUT android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
3     <TEXTVIEW android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="省份:" />
4   
5     <AUTOCOMPLETETEXTVIEW android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/AutoCompleteTextView01" android:completionThreshold="1" android:hint="请输入省份">
6     AUTOCOMPLETETEXTVIEW>
7 LINEARLAYOUT>

3、打开MainHelloAutoCompleteTextView.java 写入下内容:

view source
print ?
01 package android.basic.lesson10;
02   
03 import android.app.Activity;
04 import android.os.Bundle;
05 import android.widget.ArrayAdapter;
06 import android.widget.AutoCompleteTextView;
07   
08 public class MainHelloAutoCompleteTextView extends Activity {
09     /** Called when the activity is first created. */
10     @Override
11     public void onCreate(Bundle savedInstanceState) {
12         super.onCreate(savedInstanceState);
13         setContentView(R.layout.main);
14   
15         //定义数组
16         String[] province = getResources().getStringArray(R.array.province);
17   
18         //定义数组适配器
19         ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_item, province);
20   
21         //找到自动完成组件
22         AutoCompleteTextView atv = (AutoCompleteTextView) findViewById(R.id.AutoCompleteTextView01);
23   
24         //为其设置适配器
25         atv.setAdapter(adapter);
26   
27     }
28 }

4、运行程序,在英文输入法下输入”h”看看效果,再切换到中文输入法下输入”河”看看效果:

这里留意一下,android:completionThreshold=”1″ 属性设置了一个阀值,规定用户打了多少字符之后才出现自动提示,默认值是2,我们在这里改成了1。

你可能感兴趣的:(自动匹配 AutoCompleteTextView 自动完成文本框)