Android-自动完成提示框CompletionTextView

自动完成提示框CompletionTextView可以实现以下效果(提示框从那里出来是系统自动处理的);

类似于在百度输入框,输入一个字符,会自动提示很多和这个相关的条目内容


定义自动完成提示框(此控件特点只会提示一次)AutoCompleteTextView

Layout代码:

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

    <!--
        定义自动完成提示框(此控件特点只会提示一次)
        android:completionThreshold="1" 设置为:1 代表输入一个字就会提示
     -->
    <AutoCompleteTextView
        android:id="@+id/actv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="1"
        />

</LinearLayout>

Java代码绑定数据:

  private void initAutoCompleteTextView() {
        AutoCompleteTextView autoCompleteTextView = findViewById(R.id.actv);

        // 组装数据
        final List<String> data = new ArrayList<>();
        for (int i=0; i< 30; i++) {
            data.add("自动完成提示框 提示一次" + i);
        }

        // AutoCompleteTextView的绑定数据 可以想象成 ListView的绑定数据
        ArrayAdapter adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,
                android.R.id.text1,
                data);

        autoCompleteTextView.setAdapter(adapter);
    }



定义自动完成提示框(此控件特点会提示多次)MultiAutoCompleteTextView

Layout代码:

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

    <!--
        定义自动完成提示框(此控件特点会提示多次)
        android:completionThreshold="1" 设置为:1 代表输入一个字就会提示
     -->
    <MultiAutoCompleteTextView
        android:id="@+id/mactv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionThreshold="1"
        />

</LinearLayout>

Java代码绑定数据,MultiAutoCompleteTextView :

// 多次提示框,需要设置以下属性才能真正多次提示
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
private void initMultiAutoCompleteTextView() {
        MultiAutoCompleteTextView multiAutoCompleteTextView = findViewById(R.id.mactv);

        // 组装数据
        final List<String> data = new ArrayList<>();
        for (int i=0; i< 30; i++) {
            data.add("自动完成提示框 提示多次" + i);
        }

        // MultiAutoCompleteTextView的绑定数据 可以想象成 ListView的绑定数据
        ArrayAdapter adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,
                android.R.id.text1,
                data);
        multiAutoCompleteTextView.setAdapter(adapter);

        // 多次提示框,需要设置以下属性才能真正多次提示
        multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    }
原文地址:https://www.cnblogs.com/android-deli/p/10100331.html