Android开发系列(二十):AutoCompleteTextView(自己主动完毕文本框)的功能和使用方法
当用户输入一定的字符之后,自己主动完毕文本框可以显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView可以依照用户的选择自己主动填写该文本框
AutoCompleteTextView是从EditText派生而出,比普通编辑框多了一个功能:输入一定字符后,自己主动完毕文本。
下边我们看下它的属性:
android:completionHint:设置下拉菜单中的提示标题
android:completionHintView:设置下拉菜单中提示标题的视图
android:dropDownHeight:设置下拉菜单的高度
android:dropDownHorizontalOffset:设置下拉菜单与文本框之间的水平廉价,下拉菜单默认与文本框左对齐
android:dropDownVerticalOffset:设置下拉菜单与文本框之间的垂直偏移,下拉菜单默认与文本框左对齐
android:dropDownWidth:设置下拉菜单的宽度
android:popupleBackground:设置下拉菜单的背景
另外,AutonCompleteTextView派生了一个子类:MultiAutoCompleteTextView,该子类同意输入多个提示项,每一个提示项之间用分隔符切割。
MultiAutoCompleteTextView提供setTokenizer()方法设置分隔符。
我们首先,新建一个Android项目,然后就能够编写main.xml文件:
<span style="font-size:14px;"><?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:hint="请填写您的邮箱地址"
android:id="@+id/auto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:dropDownHorizontalOffset="0dp"
android:completionThreshold="1"/>
<!-- 定义一个MultiAutoCompleteTextView组件 -->
<MultiAutoCompleteTextView
android:id="@+id/mauto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"
/>
</LinearLayout>
</span>
然后,我们编写java代码,AutoCompleteTextViewTest.java:
<span style="font-size:14px;">package org.crazyit.ui; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.MultiAutoCompleteTextView;
import android.widget.TextView; public class AutoCompleteTextViewTest extends Activity
{
AutoCompleteTextView actv;
MultiAutoCompleteTextView mauto;
// 定义字符串数组,作为提示的文本
String[] books = new String[]{
"Big_AdamApple@qq.com",
"Big_AdamApple@baidu.com",
"Big_AdamApple@gmail.com",
"Big_AdamApple@sina.com",
"Big_AdamApple@163.com",
"Big_AdamApple@mail.com",
"Big_AdamApple@11.com",
};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 创建一个ArrayAdapter,封装数组
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, books);
actv = (AutoCompleteTextView)findViewById(R.id.auto);
// 设置Adapter
actv.setAdapter(aa);
mauto = (MultiAutoCompleteTextView)findViewById(R.id.mauto);
// 设置Adapter
mauto.setAdapter(aa);
// 为MultiAutoCompleteTextView设置分隔符
mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}</span>
效果图例如以下:
Android开发系列(二十):AutoCompleteTextView(自己主动完毕文本框)的功能和使用方法的更多相关文章
- 阅读《Android 从入门到精通》(12)——自己主动完毕文本框
自己主动完毕文本框(AutoCompleteTextView) java.lang.Object; android.view.View; android.view.TextView; android. ...
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
- BizTalk开发系列(二十二) 开发自定义Map Functoid
尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...
- Android开发(二十五)——Android上传文件至七牛
设置头像: Drawable drawable = new BitmapDrawable(dBitmap); //Drawable drawable = Drawable.createFromPath ...
- Android开发系列(十八):自己定义控件样式在drawable目录下的XML实现
在Android开发的过程中,我们常常须要对控件的样式做一下改变,能够通过用添加背景图片的方式进行改变,可是背景图片放多了肯定会使得APK文件变的非常大. 我们能够用自己定义属性shape来实现. s ...
- Android开发(二十九)——layout_weight的含义
首先声明只有在Linearlayout中,该属性才有效.之所以android:layout_weight会引起争议,是因为在设置该属性的同时,设置android:layout_width为wrap_c ...
- BizTalk开发系列(二十六) 使用Web Service
Web Service是在构建SOA平台中广泛使用的技术.在BizTalk开发过程中使用SOAP适配器接收和发送 Web Services 请求.业务流程可以发布为 Web Services 并使用外 ...
- BizTalk开发系列(二十五) SQL Adapter
SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...
- BizTalk开发系列(二十四) BizTalk项目框架建议
Asp.NET有MVC框架,大部份的开发都是按照MVC进行的.BizTalk是面向消息的开发,不能完全采用分层的开发模式.而微软只提供了 BizTalk项目开发的基本策略,通过分析相关的Complex ...
随机推荐
- hdu(2859)——Phalanx(dp)
题意: 如今有一个n*n的矩阵,然后每一个格子中都有一个字母(大写或小写组成).然后询问你如今最大的对称子矩阵的边长是多少.注意这里的对角线是从左下角到右上角上去的. 思路: 这道题我自己写出了dp的 ...
- leetcode 链表 Partition List
Partition List Total Accepted: 19761 Total Submissions: 73252My Submissions Given a linked list and ...
- JAVA多态学习1
多态–概念 所谓多态.就是指一个引用(类型)在不同情况下的多种状态. 也能够理解成:多态是指通过指向父类的指针,来调用在不同子类中实现的方法. 实现多态有两种方式:1.继承.2.接口 这一次我们先来演 ...
- OpenCASCADE解非线性方程组
OpenCASCADE解非线性方程组 eryar@163.com Abstract. 在科学技术领域里常常提出求解非线性方程组的问题,例如,用非线性函数拟合实验数据问题.非线性网络问题.几何上的曲线曲 ...
- amaze ui各个模块简单说明
amaze ui各个模块简单说明 导航添加依据 http://amazeui.org/css/ 下面内容属学习笔记,如有理解偏差和错误请留言相告,感谢!* =(官网这块写的很详细) 一.基本样式 1 ...
- MyEclipse下怎么配置Maven
这个很简单. 前期博客,请移步: Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) 截图示范:
- CSU 1046 追杀
Description 在一个8行9列的国际象棋棋盘上,有一名骑士在追杀对方的国王.该骑士每秒跨越一个2*3的区域,如下图所示. 而对方的国王慌忙落逃,他先沿着右下斜线方向一直跑,遇到边界以后会沿着光 ...
- [TypeScript] Model Alternatives with Discriminated Union Types in TypeScript
TypeScript’s discriminated union types (aka tagged union types) allow you to model a finite set of a ...
- BZOJ2244: [SDOI2011]拦截导弹(CDQ分治,二维LIS,计数)
Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度.并且能够拦截任意速度的导弹,但是以后每一发炮弹都不能高 ...
- Vue框架学习笔记
<div id="app"> </div> var app = new Vue({ el:"#app", // 绑定的元素 data:{ ...