美文网首页Android开发Android开发经验谈Android开发
AutoCompleteTextView(自动完成文本框)

AutoCompleteTextView(自动完成文本框)

作者: 你好_摆渡人 | 来源:发表于2019-10-11 18:18 被阅读0次

    自动完成文本框从EditText派生而出,实际上也就是个文本框但是当用户输入一定字符之后,会显示一个菜单供用户选择,选完后自动填写。
    android:completionHint:设置下拉菜单中的提示标题
    android:completionHintView:定义提示视图中显示下拉菜单
    android:completionThreshold:指定用户至少输入多少个字符才会显示提示
    android:dropDownAnchor:设置下拉菜单的定位"锚点"组件,如果没有指定改属性, 将使用该TextView作为定位"锚点"组件
    android:dropDownHeight:设置下拉菜单的高度
    android:dropDownWidth:设置下拉菜单的宽度
    android:dropDownHorizontalOffset:指定下拉菜单与文本之间的水平间距
    android:dropDownVerticalOffset:指定下拉菜单与文本之间的竖直间距
    android:dropDownSelector:设置下拉菜单点击效果
    android:popupBackground:设置下拉菜单的背景
    使用AutoComplete TextView很简单,只需要为他设置一个adapter即可,该adapter封装了AutoComplete TextView预设的提示文本
    AutoCompleteTextView还派生一个MultiAtuoCompleteTextView,该子类的功能与AutoCompleteTextView基本相似,只是MultiAtuoCompleteTextView允许输入多个提示项,多个提示项以分隔符分隔,MultiAtuoCompleteTextView提供setTokenizer()方法设置分隔符。
    activity_main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:orientation="vertical">
     //定义一个自动完成文本框,指定输入一个字符后提示
     <AutoCompleteTextView
         android:id="@+id/auto"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:completionHint="请选择你喜欢的图书"
         android:dropDownHorizontalOffset="10dp"
         android:completionThreshold="1"/>
    //定义一个组件
     <MultiAutoCompleteTextView
         android:id="@+id/mauto"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:completionThreshold="1"/>
    </LinearLayout>
    

    下面他们绑定同一个adapter所以提示内容一样
    activity代码:

    package com.example.myapplication;
    import android.util.Log;
    import android.support.v7.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.Button;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.MultiAutoCompleteTextView;
    import android.widget.SimpleAdapter;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class MainActivity extends AppCompatActivity {
       private String[] books=new String[]{"疯狂Java讲义","疯狂前端开发","疯狂xml讲义","疯狂workflow讲义"};
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //创建一个Arrayadapter,封装数组
            ArrayAdapter adapter1=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,books);
            //android.R.layout.simple_dropdown_item_1line  默认的下拉条目样式
            AutoCompleteTextView actv=findViewById(R.id.auto);
            //设置adapter
            actv.setAdapter(adapter1);
            MultiAutoCompleteTextView mauto=findViewById(R.id.mauto);
            mauto.setAdapter(adapter1);
            //为MultiAutoCompleteTextView设置分隔符
            mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
        }
    }
    

    最后效果图


    342BE43122AC9BBBCE14335B87CD6B78.jpg
    D0D639499D4371953960B1A907357319.jpg

    那个,。。。。额,由于虚拟机不知道什么原因输入不了文字,所以下载apk然后用手机截的图,有点大哈。

    相关文章

      网友评论

        本文标题:AutoCompleteTextView(自动完成文本框)

        本文链接:https://www.haomeiwen.com/subject/mgdxmctx.html