Android AutoCompleteTextView 自动完成文本框
Android AutoCompleteTextView
( 自动完成文本框 ) 用于创建一个自动提示输入框
当用户输入部分字符时,会弹出一个下拉列表让用户选择
AutoCompleteTextView
AutoCompleteTextView
也使用 Adapter
提供数据
使用 XML 创建一个 AutoCompleteTextView
也很简单
<AutoCompleteTextView android:id="search" android:layout_width="match_parent" android:layout_height="wrap_content" />
AutoCompleteTextView
有很多属性,几乎都与下拉提示设置有关
AutoCompleteTextView 属性
属性 | 说明 |
---|---|
android:completionHint | 设置下拉菜单中的提示标题 |
android:completionHintView | 定义提示视图中显示下拉菜单 |
android:completionThreshold | 指定用户至少输入多少个字符才会显示提示 |
android:dropDownAnchor | 设置下拉菜单的定位"锚点"组件,如果没有指定改属性,将使用该TextView作为定位"锚点"组件 |
android:dropDownHeight | 设置下拉菜单的高度 |
android:dropDownWidth | 设置下拉菜单的宽度 |
android:dropDownHorizontalOffset | 指定下拉菜单与文本之间的水平间距 |
android:dropDownVerticalOffset | 指定下拉菜单与文本之间的竖直间距 |
android:dropDownSelector | 设置下拉菜单点击效果 |
android:popupBackground | 设置下拉菜单的背景 |
最简单的例子
-
创建一个 空的 Android 项目
cn.twle.android.AutoCompleteTextView
-
修改
activity_main.xml
添加一个AutoCompleteTextView
<?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dp"> <AutoCompleteTextView android:id="@+id/search" android:layout_width="300dp" android:layout_height="wrap_content" android:completionThreshold="1"/> </LinearLayout>
-
android:completionThreshold="1"
设置了输入一个字就显示提示
-
-
修改
MainActivity.java
添加数据package cn.twle.android.autocompletetextview; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.AutoCompleteTextView; import android.widget.ArrayAdapter; public class MainActivity extends AppCompatActivity { private AutoCompleteTextView search; private static final String[] data = new String[]{ "python", "perl", "php", "java", "swift","c++","c","c#","javascript","ruby" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); search = (AutoCompleteTextView) findViewById(R.id.search); ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity. this, android.R.layout.simple_dropdown_item_1line, data); search.setAdapter(adapter); } }