Android 组件系列(1):自动完成输入内容的组件(AutoCompleteTextView )

本文为原创,如需转载,请注明作者和出处,谢谢!

    AutoCompleteTextView和EditText组件类似,都可以输入文本。但AutoCompleteTextView组件可以和一个字符串数组或List对象绑定,当用户输入两个及以上字符时,系统将在AutoCompleteTextView组 件下方列出字符串数组中所有以输入字符开头的字符串,这一点和www.Google.com的搜索框非常相似,当输入某一个要查找的字符串时,Google搜索框就会列出以这个字符串开头 的最热门的搜索字符串列表。

    AutoCompleteTextView组件在XML布局文件中使用<AutoCompleteTextView>标签来表示,该标签的使用方法与<EditText>标签相同。如果要让AutoCompleteTextView组件显示辅助输入列表,需要使用AutoCompleteTextView类的setAdapter方法指定一个Adapter对象,代码如下:

String[] autoString = new String[]{ "a", "ab", "abc", "bb", "bcd", "bcdf", "手 机", "手机操作系统", "手 机软件" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, autoString);
AutoCompleteTextView autoCompleteTextView = 
        (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
autoCompleteTextView.setAdapter(adapter);

运行上面代码后,在文本框中输入“手机”, 就会显示如图1所 示的效果。

    除了AutoCompleteTextView组 件外,我们还可以使用MultiAutoCompleteTextView组件来完成连续输入的功能。也就是说,当输入完一个字符串后,在该字符串后面输入一个逗号(,),在逗号前后可以有任意多个空格,然后 再输入一个字符串(例如,“手机”),仍然会显示辅助输入的列表,但要使用MultiAutoCompleteTextView类的setTokenizer方法指定MultiAutoCompleteTextView.CommaTokenizer类的对象实例(该对象表示输入多个字符串时的分隔符为逗号),代码如下:

MultiAutoCompleteTextView multiAutoCompleteTextView = 
        (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
multiAutoCompleteTextView.setAdapter(adapter);
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

运行上面的代码后,在屏幕的第2个文本框中输入“ab ,  ” 后,再输入“手机”,会显示如图2所示的效果。


2 U' i1 B1 Y9 ?+ m  p4 /1 x/ x

 

新浪微博手机客户端(Android/Ophone版)发布

《银 河系列原创教程》发布

《Java Web开发速学宝典》出版, 欢迎定购

时间: 2024-07-29 14:41:25

Android 组件系列(1):自动完成输入内容的组件(AutoCompleteTextView )的相关文章

Android组件系列(1):自动完成输入内容的组件(AutoCompleteTextView )

本文为原创,如需转载,请注明作者和出处,谢谢!     AutoCompleteTextView 和 EditText 组件类似,都可以输入文本.但 AutoCompleteTextView 组件可以和一个字符串数组或 List 对象绑定,当用户输入两个及以上字符时,系统将在 AutoCompleteTextView 组 件下方列出字符串数组中所有以输入字符开头的字符串,这一点和 www.Google.com 的搜索框非常相似,当输入某一个要查找的字符串时, Google 搜索框就会列出以这个字

Android实现动态自动匹配输入内容功能

什么是动态自动匹配输入内容呢?举个例子,当我们在百度等搜索引擎的输入框中输入想要搜索的关键词,输入框下面会提示很多相关联的热门搜索项,效果图如下 那在安卓中如何实现这种效果呢?在这里给大家推荐两个Android的控件: AutoCompleteTextView MultiAutoCompleteTextView 一.AutoCompleteTextView 独特属性:android:completionThreshold="2"-–设置输入多少字符时自动匹配 首先,我们先在res文件夹

Android TextWatcher监控EditText中的输入内容并限制其个数

布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中输入的内容,作个笔记. 主布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:ori

走近Flex组件系列(二):简单实用的Alert组件

Flex中为我们提供的简单实用的Alert组件,可以为我们在项目开发中完成很多的应用控制和提示操作.其功能和Windows Form的MessageBox,JavaScript中的alert()一样,其作用我就不用我多说了. 本文将介绍Flex的Alert组件比较常见的几种应用模式,详细请坐下听我慢慢道来. 最常见的莫过于只做消息提示的功能应用,那Flex的Alert该怎么来实现呢?Flex的Alert组件位于mx.controls包下,Alert类提供了静态的show方法来完成我们常见的功能.

《Android App开发入门:使用Android Studio 2.X开发环境》——2-6 输入字段 EditText 组件

2-6 输入字段 EditText 组件 除了按钮外,另一种常见的基本输入组件是EditText. getText():获取用户输入的文字 EditText 组件的用途是让用户输入文字,在程序中可用 getText()获取用户输入的内容. getText() 方法返回的是 Android SDK中定义的 Editable 类型的对象,因此要当字符串处理,必须再调用 toString() 方法进行转换. setText():设置 TextView 显示的文字 如果要设置 TextView 组件上显

Android组件系列----Intent详解

[正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互.Intent这个英语单词的本意是"目的.意向.意图". Intent是一种运行时绑定(runtime bin

android webview中如何获得输入框输入的内容

问题描述 android webview中如何获得输入框输入的内容 求高手指点,寻求热心好人帮助.如何获得webview中登录框我输入的内容. 详细: 通过webView打开一个URL网址.打开后有一个登录页面,页面有个userID和Password的输入框,和一个登录按钮,输入帐号密码后点击登录按钮,如何获得我输入的帐号和密码????? url是用别公司的登录页面地址.不知道他的数据 解决方案 http://www.eoeandroid.com/forum.php?mod=viewthread

Jquery实现 TextArea 文本框根据输入内容自动适应高度

原文 Jquery实现 TextArea 文本框根据输入内容自动适应高度 在玩微博的时候我们可能会注意到一个细节就是不管是新浪微博还是腾讯微博在转发和评论的时候给你的默认文本框的高度都不会很高,这可能是版面的限制和用户通常只转播或者评论一个短句有关.但是当你输入超过一行文字的时候,TextArea自动适应高度,大大改善了体验,这样用户就可以看到全部的文字.不用再去拖动文本框的滚动条.   如下图:   这些在平时的项目中挺实用的,所以抽空封装了一个文本框根据输入内容自适应高度的插件 - Text

测试-Android Studio最后那个Import 语句 输入后就自动消失了,为何?

问题描述 Android Studio最后那个Import 语句 输入后就自动消失了,为何? 下面是我买的陈承欢老师 的书的代码,我按部就班学习. 真机测试发现 正常加载,但无法响应 触摸事件.分析发现 题中的那个Import 没有,而且输入后自动消失了.其他的 Import 都是在输入 Class代码后自动添加的,惟独那一句无法添加.求大神分析. 发了几个问题的邮件给作者,都没有回复.故请大神帮忙! 刚来,悬赏. 谢谢了! package com.example.app0401_44; imp