View Code
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 }