您的位置:首页 > 移动开发 > Android开发

android自动提示输入框

2015-12-29 13:54 337 查看
其实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设置将用于确定文本相关范围内

哎,这些重要方法和属性也是笔者网上查的,描述的真是让人醉了。。。。详见/article/4602589.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: