自动完成文本框AutoCompleteTextView
自动完成文本框,用于实现允许用户输入一定字符后,显示一个下拉列表,供用户从中选择,当用户选择某个选项后,按用户选择自动填写该文本框。
AutoCompleteTextView是EditText的子类,所以可以使用所有editText的属性,同时有以下特有的属性:
| XML属性 | 描述 |
|---|---|
| android:completionHint | 用于为弹出的下拉列表指定提示标题 |
| android:completionThreshold | 用于指定用户至少输入几个字符才会显示提示 |
| android:dropDownHeight | 用户指定下拉列表的高度 |
| android:dropDownHorizontalOffset | 用于指定下拉列表与文本之间的水平偏移,下拉菜单默认与文本框左对齐 |
| android:dropDownVerticalOffset | 用于指定下拉列表与文本之间的垂直偏移,下拉菜单默认与文本框左对齐 |
| android:dropDownWidth | 用于指定下拉菜单的宽度 |
| android: popupBackground | 用于为下拉菜单设置背景 |
实例介绍
步骤一 在XML文件中添加一个AutoCompleteTextView
在布局管理器中添加一个自动完成文本框和一个按钮。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="6dp">
<AutoCompleteTextView
android:id="@+id/auyoCompleteTextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:text=""
android:completionThreshold="2"
android:completionHint="输入搜索内容"
android:layout_weight="9"/>
<Button
android:id="@+id/but1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确定"
android:layout_marginLeft="10dp"/>
</LinearLayout>

步骤二 创建一个数组来存储要检索的信息
我们需要创建一个数组,在自动完成框中输入关键字时,会自动在这个数组中匹配相应的内容。 这个数组可以用ArrayList实现,也可以用数据库实现。
private static final String[] COUNTRIES = new String[]{
"love","lost","abcd","abcde","abcdef","abcdefg","abcdefghi"
};
步骤三 用ArrayAdapter适配器与自动完成框关联
需要获取自动完成文本框的id,创建一个保存下拉列表中要显示的列表项ArrayAdapter适配器, 最后讲该适配器与自动完成文本框相关联。
代码如下:
final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.auyoCompleteTextView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line,COUNTRIES);
textView.setAdapter(adapter);
Button button = (Button) findViewById(R.id.but1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(AutoCompleteTextViewActivity.this,textView.getText().toString(),Toast.LENGTH_SHORT).show();
}
});
运行结果如图:

本文详细介绍Android中的AutoCompleteTextView组件,包括其基本用法、关键属性及如何通过ArrayAdapter与数据源关联,实现自动补全功能。
931

被折叠的 条评论
为什么被折叠?



