我们在查航班信息时,或者在百度、Google搜索时,当你在搜索框里输入一些字符时,会自动弹出一个下拉框提示类似的结果。在Android中提供了两种智能输入框,它们是AutoCompleteTextView、MultiAutoCompleteTextView。
AutoCompleteTextView、MultiAutoCompleteTextView二者区别是前者选择一个,后者可以选择多个。
一、布局文件
打开activity_main.xml文件。
输入以下代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<AutoCompleteTextView android:id="@+id/single"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<MultiAutoCompleteTextView android:id="@+id/multi"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
二、程序文件
打开“src/com.genwoxue.autocompletetextview/MainActivity.java”文件。
然后输入以下代码:
package com.example.autocompletetextview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
public class MainActivity extends Activity {
//初始化城市列表
private static final String[] city=new String[]
{"乌鲁木齐市", "北京市", "郑州市", "上海市","天津市", "深圳市", "广州市", "南京市","大连市","大同市"};
//声明AutoCompleteTextView、MultiAutoCompleteTextView对象
private AutoCompleteTextView single=null;
private MultiAutoCompleteTextView multi=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取AutoCompleteTextView、MultiAutoCompleteTextView对象
single=(AutoCompleteTextView)findViewById(R.id.single);
multi=(MultiAutoCompleteTextView)findViewById(R.id.multi);
//创建适配器
ArrayAdapter<String> adapter=new ArrayAdapter<String>(
this,
android.R.layout.simple_dropdown_item_1line,
city);
//初始化single
single.setAdapter(adapter);
//设置输入多少字符后提示,默认值为2,在此设为1
single.setThreshold(1);
//初始化multi
multi.setAdapter(adapter);
multi.setThreshold(1);
//用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不同的子串。
multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
说明:
(1)AutoCompleteTextView常见方法
clearListSelection():清除选中的列表项;
dismissDropDown():如果存在关闭下拉菜单;
getAdapter():获取适配器。
(2)MultiAutoCompleteTextView常见方法
enoughToFilter():当文本长度超过阈值时过滤;
performValidation():代替验证整个文本,这个子类方法验证每个单独的文字标记;
setTokenizer(MultiAutoCompleteTextView.Tokenizer t):用户正在输入时,tokenizer设置将用于确定文本相关范围内。
三、运行结果