大家在用百度搜索时,输入几个词就出现下拉框可选,以下两个控件就具有这个功能

AutoCompleteTextView:只能匹配输入的开始,只有一次匹配

MultiAutoCompleteTextView:可以匹配多次输入,用分隔符来分隔每一次的输入,就像发邮件时选多个联系人一样,见例子:

一、AutoCompleteTextView的效果实现如下

布局文件如下

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <!-- 属性ems表示从第几个字开始显示下拉匹配框 -->
<AutoCompleteTextView
android:id="@+id/autoCompleteTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="2"
android:hint="请输入关键字搜索" > <requestFocus />
</AutoCompleteTextView> </LinearLayout>

代码文件如下

 package com.example.demo4;

 import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView; public class MyactivityMainActivity extends Activity { private AutoCompleteTextView acTextview; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //获取到控件实例
acTextview = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); //定义一个字符串数组用来匹配输入的关键字
String[] dsr = new String[] {
"zhangshang", "zhangshi", "zhangzhang",
"lishang", "ligang",
"chengcheng", "chengzhi",
"wangwu"
}; //初始化一个用来匹配输入的下拉数据源适配器
ArrayAdapter<String> adptr = new ArrayAdapter<String>(
this, //当前对象
android.R.layout.simple_list_item_1, //这是一个系统自带的layout
dsr //数据源
); //设置AutoCompleteTextView控件的匹配器
acTextview.setAdapter(adptr); } }

二、MultiAutoCompleteTextView实现效果如下

布局文件不用上了,就是变了一个控件而已,直接看代码,也就多了一条语句而已

 package com.example.demo4;

 import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.MultiAutoCompleteTextView; public class MyactivityMainActivity extends Activity { private MultiAutoCompleteTextView macTextview; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //获取到控件实例
macTextview = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1); //定义一个字符串数组用来匹配输入的关键字
String[] dsr = new String[] {
"zhangshang", "zhangshi", "zhangzhang",
"lishang", "ligang",
"chengcheng", "chengzhi",
"wangwu"
}; //初始化一个用来匹配输入的下拉数据源适配器
ArrayAdapter<String> adptr = new ArrayAdapter<String>(
this, //当前对象
android.R.layout.simple_list_item_1, //这是一个系统自带的layout
dsr //数据源
); //设置AutoCompleteTextView控件的匹配器
macTextview.setAdapter(adptr); //设备多次输入的分隔,这里为逗号
macTextview.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } }

完了,是不是so easy,MultiAutoCompleteTextView就比AutoCompleteTextView多加了一条分隔语句而已,特么就是儿子继承了多一个功能而已!!!

Android学习起步 - AutoCompleteTextView及MultiAutoCompleteTextView控件使用的更多相关文章

  1. Android学习之AutoCompleteTextView和MultiAutoCompleteTextView

    转自:http://blog.csdn.net/qq_28468727/article/details/52258409 AutoCompleteTextView.MultiAutoCompleteT ...

  2. Android开发技巧——自定义控件之组合控件

    Android开发技巧--自定义控件之组合控件 我准备在接下来一段时间,写一系列有关Android自定义控件的博客,包括如何进行各种自定义,并分享一下我所知道的其中的技巧,注意点等. 还是那句老话,尽 ...

  3. React-Native的基本控件属性方法,对React-Native的学习,从熟悉基本控件开始。

    对React-Native的学习,从熟悉基本控件开始. View 属性方法 序号 名称 属性Or方法 类型 说明 1 accessibilityLabel 属性 string   2 accessib ...

  4. [APP] Android 开发笔记 004-Android常用基本控件使用说明

    TextView 文本框 EditText控件 Button 与 ImageButton ImageView RadioButton CheckBox复选框 TextView 文本框 ,用于显示文本的 ...

  5. (转载)Android UI设计之AlertDialog弹窗控件

    Android UI设计之AlertDialog弹窗控件 作者:qq_27630169 字体:[增加 减小] 类型:转载 时间:2016-08-18我要评论 这篇文章主要为大家详细介绍了Android ...

  6. Android support library支持包常用控件介绍(二)

    谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library ...

  7. (转载) Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框

    Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 标签: Android清除功能EditText仿IOS的输入框 2013-09-04 17:33 70865人阅读  ...

  8. Android CardView卡片布局 标签: 控件

    CardView介绍 CardView是Android 5.0系统引入的控件,相当于FragmentLayout布局控件然后添加圆角及阴影的效果:CardView被包装为一种布局,并且经常在ListV ...

  9. Android开源中国客户端学习 (自定义View)左右滑动控件ScrollLayout

    左右滑动的控件我们使用的也是非常多了,但是基本上都是使用的viewpager 等 android基础的控件,那么我们有么有考虑过查看他的源码进行定制呢?当然,如果你自我感觉非常好的话可以自己定制一个, ...

随机推荐

  1. 工程环境搭建和网站部署(java)

    我们一般访问网站的时候,都是用127.0.0.1:8080...去访问,如果想用www.shopping.com访问java网站时 需要配置C:\Windows\System32\drivers\et ...

  2. cpp项目的组织

    编译篇 较大型cpp项目的代码组织.编译都是深耦合的. 一般提供一个总体的makefile,进入各个模块,又有自己的makefile,这些makefile又都依赖于一些被include的文件的的定义, ...

  3. 05_动手动脑之String.equals()方法的实现代码

    Question: 请查看String.equals()方法的实现代码,注意学习其实现方法. Answer: java中的String.equals()方法的实现代码: equals()法是根类Obj ...

  4. 常用的shell命令

    作为一名有10年以上使用年龄的Linux/MacOSX用户来说,键盘的作用往往要远大于鼠标.而且,作为一个黑客文化的追随者,我也希望越来越多的用户能认识到命令行的潜在价值,不要把它视为只是计算机专家们 ...

  5. <%@page contentType="text/html;charset=gbk"%>与<meta http-equiv="Content-Type" content="text/html; charset=GBK">区别

    前一个是在服务端起作用,是告诉应用服务器采用何种编码输出JSP文件流,后一个是在客户端起作用,是告诉浏览器是采用何种编码方式显示HTML页面.     前者由jsp引擎对输出内容进行编码, 后者将由I ...

  6. Chapter 4: Troubleshoot and debug web applications

    Prevent and troubleshoot runtime issues Troubleshooting performance, security and errors using perfo ...

  7. zendstuido10 配置spket插件

    必备:Zend Studio.Spket Plugin.sdk.jsb3.百度 安装过程中出现了两种错误,导致最后安装spket时报错,一种是提示“The file "F:\study\to ...

  8. MySQL 5.7 并行复制实现原理与调优

    MySQL 5.7并行复制时代 众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经支持“真正”的并行复制功能, ...

  9. 深入浅出SQL Server中的死锁

    简介 死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的.理解死锁首先需要对死锁所涉及的相关观念有一个理解. 一些基础知识 要理解SQL Server中的死锁,更好的方式是通过类比从更大的面理 ...

  10. python之元编程(元类实例)

    本实例是元类实例,功能是记录该的子类的类名,并以树状结构展示子类的类名. RegisterClasses继承自type,提供的功能是在__init__接口,为类创建了childrens的集合,并类名保 ...