AutoCompleteTextView是一个根据用户的输入弹出建议列表,类似这种
在xml使用
<!-- 常用属性 android:completionHint设置出现在下拉菜单中的提示标题 android:completionThreshold设置用户至少输入多少个字符才会显示提示 android:dropDownHorizontalOffset下拉菜单于文本框之间的水平偏移。默认与文本框左对齐 android:dropDownHeight下拉菜单的高度 android:dropDownWidth下拉菜单的宽度 android:singleLine单行显示 android:dropDownVerticalOffset垂直偏移量 --> <AutoCompleteTextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="2"/>
/*官方给出的示例代码 * public class CountriesActivity extends Activity { * protected void onCreate(Bundle icicle) { * super.onCreate(icicle); * setContentView(R.layout.countries); * * ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, * android.R.layout.simple_dropdown_item_1line, COUNTRIES); * AutoCompleteTextView textView = (AutoCompleteTextView) * findViewById(R.id.countries_list); * textView.setAdapter(adapter); * } * * private static final String[] COUNTRIES = new String[] { * "Belgium", "France", "Italy", "Germany", "Spain" * }; * } * */java
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.text); final String[] arr = {"2010","2011","2012","2210","2211","2212",}; //参数2下拉列表的样式android.R.layout.simple_list_item_1是系统样式 //也可以自定义Adapter集成BaseAdapter,使用起来更灵活 ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,arr); textView.setAdapter(arrayAdapter); //点击条目监听 textView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(AutoCompleteTextViewActivity.this,arr[position],Toast.LENGTH_SHORT).show(); } }); //这个类的 OnItemSelectedListener事件没有做处理! 所以在使用这个类时,OnItemClickListener有效果,而OnItemSelectedListener没有效果的 /*textView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(AutoCompleteTextViewActivity.this,arr[position],Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { Toast.makeText(AutoCompleteTextViewActivity.this,"没有选中",Toast.LENGTH_SHORT).show(); } });*/