Android高级组件AutoCompleteTextView自动完成文本框使用详解
作者:光仔December 发布时间:2022-04-19 07:49:28
自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项之后,按用户选择自动填写该文本框。
语法格式:
<AutoCompleteTextView
属性列表>
</AutoCompleteTextView>
AutoCompleteTextView组件继承EditText,所以它支持EditText组件提供的属性,同时,该组件还有以下属性:
android:completionHint 下拉列表下面的说明性文字
android:completionThreshold 弹出下来列表的最小字符个数
android:dropDownAnchor 下拉列表的锚点或挂载点
android:dropDownHeight 下拉列表高度
android:dropDownWidth 下拉列表宽度
android:dropDownHorizontalOffset 下拉列表距离左边的距离
android:dropDownVerticalOffset 下拉列表距离上边的距离
android:dropDownSelector 下拉列表被选中的行的背景
android:popupBackground 下拉列表的背景
下面实现带自动提示功能的搜索框:
效果如图所示:
具体实现:
res/layout/main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="#000000">
<AutoCompleteTextView
android:layout_width="wrap_content"
android:text=""
android:id="@+id/autoCompleteTextView1"
android:completionThreshold="2"
android:completionHint="输入搜索内容"
android:background="#FFFFFF"
android:layout_marginLeft="10px"
android:layout_weight="7"
android:layout_height="wrap_content">
</AutoCompleteTextView>
<Button android:text="搜索"
android:id="@+id/button0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="10px"/>
</LinearLayout>
界面效果如图:
MainActivity:
package com.example.test;
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.Toast;
public class MainActivity extends Activity {
//此字符串是要在下拉菜单中显示的列表项
private static final String[] COUNTRIES=new String[]{"HeNan","HeNan大学",
"HeNan理工大学","HeNan工业大学","HeNan万方科技学院","HeNan第二附属医院二院"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取自动完成文本框
final AutoCompleteTextView textView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
//注意ArrayAdapter与SimpleAdapter的区别
//创建一个ArrayAdapter适配器
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,COUNTRIES);
textView.setAdapter(adapter);//为自动完成文本框设置适配器
Button button=(Button)findViewById(R.id.button0);//获取"搜索"按钮
//为搜索按钮添加事件 *
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, textView.getText().toString(),Toast.LENGTH_SHORT).show();
}
});
}
}
实现了自动补全,当打HeNan的时候,下面就会有补全信息。此功能在搜索应用上使用的比较广泛。
来源:http://blog.csdn.net/acmman/article/details/44886771


猜你喜欢
- 前言Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBa
- 核心代码迁移相对顺利,大致流程如下:一、创建项目 1) cd cocos2d-x-3.0rc0;&nbs
- springboot 长轮询实现基于 @EnableAsync , @Sync@SpringBootApplication@EnableAs
- SWT中没有AWT的BorderLayout布局管理器。下面是SWT下的自定义实现: BorderLayout.java package s
- 最近需要做一个类似于电话客户的功能,要求拨打电话能自动录音。所以写了一个dome,希望能够帮到大家。主要思路就是监听手机通话状态在监听到接听
- 一、事件背景个人感觉自己做性能测试,可以说是轻车熟路了,而且工作多年一直都是这一套测试思路及体系,从未质疑过自己,也许是狮子座的迷之自信吧!
- 我们玩玩手机的录像功能吧。做个DEMO。 看看录制过程: mediarecorder = new MediaRecorder();// 创建
- 一.应用场景平时在建对象表的时候都会有最后修改时间,最后修改人这两个字段,对于这些大部分表都有的字段,每次在新增和修改的时候都要考虑到这几个
- 原理分析:迅雷的thunder://地址就是将普通url地址加前缀‘AA'、后缀‘ZZ',再base64编码后得到的字符串实
- 一、效果展示初级难度中级难度高级难度测试界面二、项目介绍项目背景扫雷是一款大众类的益智小游戏。根据点击格子出现的数字找出所有非雷格子,同时避
- AlertDialog的几种用法xml代码:<?xml version="1.0" encoding="
- Android EditText输入手机号空格开发需求是在登录页面的手机EditText中间插入空格,让用户看起来方便点, 130 1234
- 前言我们在上一篇文章教大家使用ImageView+TextView的组合自定义控件...可能在开发中你还需要其他功能,例如:按下效果,可以在
- 在我们移动应用开发过程中,偶尔有可能会接到这种需求:1、在手机桌面创建一个窗口,类似于360的悬浮窗口,点击这个窗口可以响应(至于窗口拖动我
- 一、简介虚拟函数从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行
- 话不多说,请看代码:import java.io.*; import jxl.*; import jxl.write.*; //用java将
- @RequestBody搭配@Data的坑如果用@Data修饰实体类,里面的属性最好不要用连续几个相同字母,如果用千万别用大写。比如下面这个
- 给新建的winform程序添加资源文件夹Resources小菜鸟开始学习WinForm程序别人的项目都有资源文件夹放图片之类的,我的就是没有
- 此问题的产生,主要是数据库的字段名一样导致三张表 DOCTOR JOB OBJECT有问题的查询语句和查询结果是:SELECT d.*,j.
- 一、概述数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等,可动态地改变透视表版面布置,也可以重新安排行