Android自动提示控件:AutoCompleteTextView和MultiAutoCompleteTextView

在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,这种效果在Android中是用AutoCompleteTextView实现的。

一、AutoCompleteTextView:单一匹配   MultiAutoCompleteTextView:多个匹配

二、常用属性

AutoCompleteTextView常用属性
android:completionHint 设置出现在下拉菜单中的提示标题
android:completionThreshold 设置用户至少输入多少个字符才会显示提示
android:dropDownHorizontalOffset 下拉菜单于文本框之间的水平偏移。默认与文本框左对齐
android:dropDownHeight 下拉菜单的高度
android:dropDownWidth 下拉菜单的宽度
android:singleLine 单行显示
android:dropDownVerticalOffset 垂直偏移量

三、使用

     

  

1、xml文件中添加布局,设置属性
2、初始化控件
3、初始化数据
4、配置adapater
5、绑定adapater

xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="1"
        android:id="@+id/acTv"
        android:hint="请输入内容"
        />


    <MultiAutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="1"
        android:id="@+id/macTV"
        android:layout_below="@+id/acTv"
        android:layout_marginTop="20dp"
        />


</RelativeLayout>

code

public class MainActivity extends AppCompatActivity {
    private AutoCompleteTextView autoCompleteTextView;
    private MultiAutoCompleteTextView multiAutoCompleteTextView;

    private String[] datas={"android1","android2","android3","android4",
            "java1","java2","java3","java4",};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();//初始化视图
        initTV();//设置autoCompleteTextView和multiAutoCompleteTextView

    }

    private void initTV() {
        // 配置设配器
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                this, android.R.layout.simple_expandable_list_item_1, datas);
        //设置adapter
        autoCompleteTextView.setAdapter(arrayAdapter);


        //设置adapter
        multiAutoCompleteTextView.setAdapter(arrayAdapter);
        //设置以逗号为分隔符
        multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    }



    private void initView() {
        autoCompleteTextView= (AutoCompleteTextView) findViewById(R.id.acTv);
        multiAutoCompleteTextView= (MultiAutoCompleteTextView) findViewById(R.id.macTV);

    }
}
原文地址:https://www.cnblogs.com/wangjiaghe/p/7098925.html