android自动提示输入框

其实android有自带的自动提示输入框(类似百度搜索时自动弹出一些提示,如下图),不需要我们自己去实现的。


在android里有两种自动提示输入框,分别是AutoCompleteTextView和MultiAutoCompleteTextView

那么它们有什么区别呢?嘿嘿,先来运行下下面的例子,你就明白了

布局文件

<?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" >

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <MultiAutoCompleteTextView
        android:id="@+id/multiAutoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

实现代码
package com.example.autocompletetextview;  


import android.app.Activity;  
import android.os.Bundle;  
import android.widget.ArrayAdapter;  
import android.widget.AutoCompleteTextView;  
import android.widget.MultiAutoCompleteTextView;  

public class MainActivity extends Activity {  

	//初始化
	private static final String[] city=new String[]  
			{"孙悟空", "孙悟饭", "孙悟天", "贝吉塔","短笛大魔王", "界王神", "悟天克斯", "特兰克斯","特兰验证","唐僧"};

	//声明AutoCompleteTextView、MultiAutoCompleteTextView对象  
	private AutoCompleteTextView autoCompleteTextView=null;  
	private MultiAutoCompleteTextView multiAutoCompleteTextView=null;  

	@Override  
	public void onCreate(Bundle savedInstanceState) {  
		super.onCreate(savedInstanceState);  
		setContentView(R.layout.activity_main);  

		//获取AutoCompleteTextView、MultiAutoCompleteTextView对象  
		autoCompleteTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView);  
		multiAutoCompleteTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView);  

		//创建适配器  
		ArrayAdapter<String> adapter=new ArrayAdapter<String>(  
				this,   
				android.R.layout.simple_dropdown_item_1line,  
				city);  

		//初始化autoCompleteTextView  
		autoCompleteTextView.setAdapter(adapter);  
		//设置输入多少字符后提示,默认值为2,在此设为1  
		autoCompleteTextView.setThreshold(2);  

		//初始化multiAutoCompleteTextView  
		multiAutoCompleteTextView.setAdapter(adapter);  
		multiAutoCompleteTextView.setThreshold(1);  
		//用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不同的子串。  
		multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());  
	}  
}  
拷贝运行后,你会发现,AutoCompleteTextView提示框选择一次提示后就不能再选择了,而MultiAutoCompleteTextView可以进行多次选择。

AutoCompleteTextView常用属性

android:completionHint                                    设置出现在下拉菜单中的提示标题
android:completionThreshold                         设置用户至少输入多少个字符才会显示提示
android:dropDownHorizontalOffset                下拉菜单于文本框之间的水平偏移。默认与文本框左对齐
android:dropDownHeight                                 下拉菜单的高度
android:dropDownWidth                                   下拉菜单的宽度
android:singleLine                                             单行 显示
android:dropDownVerticalOffset                     垂直偏移量


AutoCompleteTextView的一些重要方法

clearListSelection():清除选中的列表项
dismissDropDown():如果存在关闭下拉菜单
getAdapter():获取适配器


MultiAutoCompleteTextView的一些重要方法

enoughToFilter():当文本长度超过阈值时过滤
( 此方法并不是检验什么时候文本的总长度超过了预定的值,而是在仅当从函数 findTokenStart ()到 getSelectionEnd() 函数得到的文本长度为 0 或者超过了预定值的时候才起作用。)
performValidation(): 此子类方法并不是用来确定整个文本的有效性,而是用来确定文本中的单个符号的有效性。空标记将被移除。
setTokenizer(MultiAutoCompleteTextView.Tokenizer t):用户正在输入时,tokenizer设置将用于确定文本相关范围内

哎,这些重要方法和属性也是笔者网上查的,描述的真是让人醉了。。。。详见 http://www.cnblogs.com/over140/archive/2010/10/29/1864133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值