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 设置下拉菜单的背景

最简单的例子


  1. 创建一个 空的 Android 项目 cn.twle.android.AutoCompleteTextView

  2. 修改 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"

      设置了输入一个字就显示提示

  3. 修改 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);
        }
    }
    

参考文档

  1. Android AutoCompleteTextView

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.