[Android]自动完成文本框 AutoCompleteTextView

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();
            }
        });



    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值