自动完成提示框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()); }