百度搜索框自动提示搜索词的应用
AutoCompleteTextView→一次匹配
java.lang.Objectandroid.view.View
android.widget.TextView
android.widget.EditText
android.widget.AutoCompleteTextView
MultiAutoCompleteTextView→多次匹配
java.lang.Object
android.view.View
android.widget.TextView
android.widget.EditText
android.widget.AutoCompleteTextView
android.widget.MultiAutoCompleteTextView
在Android中提供了两种智能输入框,它们是AutoCompleteTextView、MultiAutoCompleteTextView。
它们的功能大致一样。显示效果像Google搜索一样,当你在搜索框里输入一些字符时(至少两个字符),
会自动弹出一个下拉框提示类似的结果。下面详细介绍一下。
一、AutoCompleteTextView
1、简介
一个继承自EditView的可编辑的文本视图,能够实现动态匹配输入的内容。
如google搜索引擎当输入文本时可以根据内容显示匹配的热门信息。
2、重要方法
clearListSelection():清除选中的列表项
dismissDropDown():如果存在关闭下拉菜单
getAdapter():获取适配器
二、MultiAutoCompleteTextView
1、简介
一个继承自AutoCompleteTextView的可编辑的文本视图,能够对用户键入的文本进行有效地扩充提示,
而不需要用户输入整个内容。(用户输入一部分内容,剩下的部分系统就会给予提示)。
用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不同的子串。
2、重要方法
enoughToFilter():当文本长度超过阈值时过滤
performValidation():代替验证整个文本,这个子类方法验证每个单独的文字标记
setTokenizer(MultiAutoCompleteTextView.Tokenizer t):用户正在输入时,
tokenizer设置将用于确定文本相关范围内
<?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/actv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<!--多次匹配-->
<MultiAutoCompleteTextView
android:id="@+id/mactv"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
package com.ncsyeyy.YeyyAutoCompleteTextView;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
public class AutoCompleteTextViewActivity extends Activity {
// AutoCompleteTextView(一次匹配)和MultiAutoCompleteTextView(多次匹配)是Android中提供的两种智能输入框
// 当你在搜索框里输入一些字符时(至少两个字符),会自动弹出一个下拉框提示类似的结果。下面详细介绍一下。
// 定义单词查询库 需要两个及两个以上字母才能匹配,一个字母不行,
// 当输入框里面什么也没有时,没有下面的字符串显示,仅仅只是一个控件而已,
/*
* AutoCompleteTextView常用属性
* android:completionHint 设置出现在下拉菜单中的提示标题
* android:completionThreshold 设置用户至少输入多少个字符才会显示提示
* android:dropDownHorizontalOffset 下拉菜单于文本框之间的水平偏移。默认与文本框左对齐
* android:dropDownHeight 下拉菜单的高度
* android:dropDownWidth 下拉菜单的宽度
* android:singleLine 单行显示
* android:dropDownVerticalOffset 垂直偏移量
* */
private static final String[]words={"abbreviation","action","ally","ball","bask"};
private AutoCompleteTextView autoCompleteTextView;
private static final String[]names={"zhangsan","zhangsi","lisi","wangwu","小明","小花"};
private MultiAutoCompleteTextView mactv;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.autocompletetextview);
//一次匹配
autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.actv);
//自定义ArrayAdapter,设置了simpleItem样式
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,words);
autoCompleteTextView.setAdapter(adapter);
//多次匹配
mactv = (MultiAutoCompleteTextView) findViewById(R.id.mactv);
ArrayAdapter<String>adapterM=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,names);
mactv.setAdapter(adapterM);
// 给MultiAutoCompleteTextView对象设置分隔符号
mactv.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
源码地址:http://download.csdn.net/detail/csdnyuandaimaxuexi/9107283