AutoCompleteTextView用途:在输入框输入的几个字后,自动出现一些文字信息供选择。
AutoCompleteTextView是EditView的子类,继承了它的所有属性和方法。
1.AutoCompleteTextView属性
- android :completionHint: 设置显示下拉列表的提示题目
- android :completionThreshold: 设置至少输入几个字符,它才会具有自动提示的功能
- android :dropDownAnchor: 后接一个view的Id ,会在这个view下弹出自动提示
- android :dropDownHeight: 设置下拉列表的高度
- android :dropDownWidth: 设置下拉列表的宽度
- android :popupBackground: 设置下拉列表的背景
AutoCompleteTextView能够对用户键入的文本进行有效地扩充提示,不需要用户输入整个内容。默认必须输入至少两个字符才能提示,可以通过 setThreshold(1) 来更改。
2.AutoCompleteTextView常用方法
- public void clearListSelection():清除所有的下拉列表项
- public ListAdapter getAdapter(): 取得数据集
- public void setAdapter(T adapter): 设置数据集
- public void setcompletionHint(CharSequence): 设置出现下拉列表的提示标题
- public void setThreshold(int):至少输入几个字符才会显示提示
- public void setDropHeight (int): 设置下拉列表的高度
- public void setDropWidth (int) :设置下拉列表的宽度
- public void setDropDownbackgroundResource (int) :设置下拉列表的背景
- public void setOnClickListener (View.OnClickListener listener) :设置单击事件
- public void setOnItemClickListener (AdapterView.OnItemClickListener listener) :在选项上设置单击事件
- public void setOnItemSelectedListener (AdapterView.OnItemSelectedListener listener) :在选项选中时的单击事件
AutoCompleteTextView 组件可以很好地帮助用户进行文本信息的输入,它可以 和一个字符串数组或List对象绑定 ,当用户输入两个及以上字符时 ,系统将在AutoCompleteTextView组件下方列出字符串数组中所有以输入字符开头的字符串。
AutoCompleteTextView组件使用的关键是需要使用 AutoCompleteTextView类的 setAdapter方法 指定一个Adapter对象,如 “this.Auto.setAdapter(Adapter);”,其中adapter是一个数据集,可以是字符串数组或List对象。
3.运行图
4.代码
(1)activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="请选择下列内容:"
android:textSize="30sp"
android:id="@+id/autotextview"
android:dropDownWidth="match_parent"
android:dropDownHeight="wrap_content"
android:popupTheme="@color/cardview_light_background"/>
</LinearLayout>
(2)MainActivity.java
package com.example.progressdialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private AutoCompleteTextView autoCompleteTextView=null;
private String []array=new String[]{"河南大学","河南师范大学","河南工业大学","河海大学"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
autoCompleteTextView=findViewById(R.id.autotextview); //取得组件
ArrayAdapter<String> adapter=new ArrayAdapter<>(MainActivity.this,
android.R.layout.simple_dropdown_item_1line,array); //定义数据集
autoCompleteTextView.setAdapter(adapter); //设置数据集
autoCompleteTextView.setThreshold(1); //设置至少输入几个字符才会显示提示
autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this,"你选择的是:"+array[i],Toast.LENGTH_SHORT).show();
}
});
}
}