Android控件之AutoCompleteTextView、MultiAutoCompleteTextView探究

13
回复
481156
查看
[复制链接]

182

主题

1647

帖子

1173

安币

Android大神

Rank: 6Rank: 6

发表于 2011-5-14 08:50:15 | 显示全部楼层 |阅读模式
在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设置将用于确定文本相关范围内
以下为案例
main.xml布局文件
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent">
  6.     <AutoCompleteTextView android:id="@+id/autoCompleteTextView"
  7.         android:layout_width="fill_parent"
  8.         android:layout_height="wrap_content"/>
  9.     <MultiAutoCompleteTextView android:id="@+id/multiAutoCompleteTextView"
  10.         android:layout_width="fill_parent"
  11.         android:layout_height="wrap_content"/>
  12. </LinearLayout>
复制代码



TextViewActivity类
  1. package com.ljq.activity;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.widget.ArrayAdapter;
  5. import android.widget.AutoCompleteTextView;
  6. import android.widget.MultiAutoCompleteTextView;

  7. public class TextViewActivity extends Activity {
  8.     //福建九地市
  9.     private static final String[] cities=new String[]
  10.         {"FuZhou", "XiaMen", "NiDe", "PuTian","QuanZhou", "ZhangZhou", "LongYan", "SanMing","NanPing"};
  11.     private AutoCompleteTextView autoCompleteTextView=null;
  12.     private MultiAutoCompleteTextView multiAutoCompleteTextView=null;
  13.    
  14.     @Override
  15.     public void onCreate(Bundle savedInstanceState) {
  16.         super.onCreate(savedInstanceState);
  17.         setContentView(R.layout.main);
  18.         
  19.         autoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);
  20.         multiAutoCompleteTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView);
  21.         
  22.         //创建适配器
  23.         ArrayAdapter<String> adapter=new ArrayAdapter<String>(
  24.                 this,
  25.                 android.R.layout.simple_dropdown_item_1line,
  26.                 cities);
  27.         autoCompleteTextView.setAdapter(adapter);
  28.         //设置输入多少字符后提示,默认值为2
  29.         autoCompleteTextView.setThreshold(2);
  30.         
  31.         multiAutoCompleteTextView.setAdapter(adapter);
  32.         multiAutoCompleteTextView.setThreshold(2);
  33.         //用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不同的子串。
  34.         multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
  35.     }
  36. }
复制代码



运行结果
1.png

分类: android常用控件
标签: android AutoCompleteTextView, android MultiAutoCompleteTextView

0

主题

71

帖子

26

安币

初级码农

Rank: 1

发表于 2011-5-22 11:09:25 | 显示全部楼层
thanks for sharing ~~~

213

主题

127

帖子

1056

安币

禁止发言

QQ达人

发表于 2011-8-23 16:51:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

41

帖子

3

安币

初级码农

Rank: 1

发表于 2011-11-13 17:48:12 | 显示全部楼层
学习学习

0

主题

40

帖子

30

安币

初级码农

Rank: 1

QQ达人

发表于 2012-5-21 22:49:24 | 显示全部楼层
{:Big Chin:}.........

0

主题

152

帖子

212

安币

攻城狮

Rank: 3Rank: 3

发表于 2012-7-30 12:51:24 | 显示全部楼层
学习了!!

0

主题

50

帖子

22

安币

初级码农

Rank: 1

发表于 2012-9-11 12:20:17 | 显示全部楼层
{:Skateboard:}{:Skateboard:}{:Skateboard:}

1

主题

62

帖子

51

安币

程序猿

Rank: 2

发表于 2012-11-23 20:17:37 | 显示全部楼层
先顶再看,哈哈哈
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )