当我们在做搜索功能的时候,往往想在用户输入内容时自动提示和输入文字前面部分匹配的文字,比如输入第一,就显示第一次打球,第一次上课的选项。这里我们用自动完成编辑框来实现。
首先我们了解一下自动完成编辑框AutoCompleteTextView的一些属性和设置方法
XML中的属性 | AutoCompleteTextView类的设置方法 | 说明 |
completionHint | setCompletionHint | 设置下拉列表底部的提示文字 |
completionThreshold | setThreshold | 设置至少输入多少个字符才会显示提示 |
dropDownHorizontalOffset | setDropDownHorizontalOffset | 设置下拉列表与文本框之间的水平偏移 |
dropDownVerticalOffset | setDropDownVerticalOffset | 设置下拉列表与文本框之间的垂直偏移 |
dropDownHeight | setDropDownHeight | 设置下拉列表的高度 |
dropDownWidth | setDropDownWidth | 设置下拉列表的宽度 |
无 | setAdapter | 设置下拉列表的数据适配器 |
接着我这里提供了一个例子,方便大家照着使用
activity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<AutoCompleteTextView
android:id="@+id/ac_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
item_dropdown.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="40dp"
android:singleLine="true"
android:gravity="center"
android:textSize="17sp"
android:textColor="#ff0000" />
MainActivity.java
public class MainActivity extends AppCompatActivity {
private String[] hintArray = {"第一","第一次","第一次写代码","第一次领工资","第二","第二个"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AutoCompleteTextView ac_text = findViewById(R.id.ac_text);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item_dropdown,hintArray);
ac_text.setAdapter(adapter);
}
}