Android控件之AutoCompleteTextView、MultiAutoCompleteTextView探究

在Android中提供了两种智能输入框,它们是AutoCompleteTextView、MultiAutoCompleteTextView。它们的功能大体同样。显示效果像Google搜索同样,当你在搜索框里输入一些字符时(至少两个字符),会自动弹出一个下拉框提示相似的结果。下面详细介绍一下。 html

1、AutoCompleteTextView android

一、简介 windows

一个继承自EditView的可编辑的文本视图,可以实现动态匹配输入的内容。如google搜索引擎当输入文本时能够根据内容显示匹配的热门信息。 app

二、重要方法 ide

clearListSelection():清除选中的列表项 布局

dismissDropDown():若是存在关闭下拉菜单 this

getAdapter():获取适配器 搜索引擎

2、MultiAutoCompleteTextView google

一、简介 spa

一个继承自AutoCompleteTextView的可编辑的文本视图,可以对用户键入的文本进行有效地扩充提示,而不须要用户输入整个内容。(用户输入一部份内容,剩下的部分系统就会给予提示)。

用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不一样的子串。

二、重要方法

enoughToFilter():当文本长度超过阈值时过滤

performValidation():代替验证整个文本,这个子类方法验证每一个单独的文字标记

setTokenizer(MultiAutoCompleteTextView.Tokenizer t):用户正在输入时,tokenizer设置将用于肯定文本相关范围内

如下为案例

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="fill_parent" android:layout_height="fill_parent"> <AutoCompleteTextView android:id="@+id/autoCompleteTextView" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <MultiAutoCompleteTextView android:id="@+id/multiAutoCompleteTextView" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
复制代码

TextViewActivity类

复制代码
  
package com.ljq.activity; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.MultiAutoCompleteTextView; public class TextViewActivity extends Activity { // 福建九地市 private static final String[] cities= new String[] {"FuZhou", "XiaMen", "NiDe", "PuTian","QuanZhou", "ZhangZhou", "LongYan", "SanMing","NanPing"}; private AutoCompleteTextView autoCompleteTextView= null; private MultiAutoCompleteTextView multiAutoCompleteTextView= null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); autoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView); multiAutoCompleteTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView); // 建立适配器 ArrayAdapter<String> adapter= new ArrayAdapter<String>( this, android.R.layout.simple_dropdown_item_1line, cities); autoCompleteTextView.setAdapter(adapter); // 设置输入多少字符后提示,默认值为2 autoCompleteTextView.setThreshold(2); multiAutoCompleteTextView.setAdapter(adapter); multiAutoCompleteTextView.setThreshold(2); // 用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不一样的子串。 multiAutoCompleteTextView.setTokenizer( new MultiAutoCompleteTextView.CommaTokenizer()); } }
复制代码

运行结果

相关文章
相关标签/搜索