1 package com.example.flexd4;
2
3 import android.os.Bundle;
4 import android.app.Activity;
5 import android.view.Menu;
6 import android.widget.ArrayAdapter;
7 import android.widget.AutoCompleteTextView;
8 import android.widget.MultiAutoCompleteTextView;
9
10 /**
11 * android提供了自动提示功能的textview,按照自带的文档和api demo可以写几行代码就可以实现此功能。
12 * 但默认的thresh为2,所以默认情况下你必须输入两个或者两个以上的字符,才会有自动提示功能,
13 * 否则AutoCompleteTextView是不会有任何提示的。
14 * 当然你可以通过setThresh来设置至少输入几个字符后才会有提示,也可以在xml里设置。
15 * AutoCompleteTextView会把你所有的字符串当做子串去做匹配,
16 * 而MultiAutoCompleteTextView会根据你提供tokenizer来分解你已经输入的字符串,
17 * 并对符合条件的最后几个字符当做子串去做自动提示。
18 *
19 */
20 public class MainActivity extends Activity {
21
22 private AutoCompleteTextView actv1;
23 private MultiAutoCompleteTextView mactv1;
24 private static final String[] autoStr = new String[]{"a","ab","abc","abcd"};
25
26 @Override
27 protected void onCreate(Bundle savedInstanceState) {
28 super.onCreate(savedInstanceState);
29 setContentView(R.layout.activity_main);
30
31 //AutoCompleteTextView
32 actv1 = (AutoCompleteTextView)findViewById(R.id.actv1);
33 //Adapter
34 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, autoStr);
35 //Set
36 actv1.setAdapter(adapter);
37 actv1.setThreshold(1);
38
39 //MultiAutoCompleteTextView
40 mactv1 = (MultiAutoCompleteTextView)findViewById(R.id.mactv1);
41 mactv1.setAdapter(adapter);
42 mactv1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
43
44 }
45
46 @Override
47 public boolean onCreateOptionsMenu(Menu menu) {
48 // Inflate the menu; this adds items to the action bar if it is present.
49 getMenuInflater().inflate(R.menu.activity_main, menu);
50 return true;
51 }
52
53 }