Android组件复习之基本组件06—autocompletetextview自动完成文本框

来源:互联网 发布:交大长天软件怎么样 编辑:程序博客网 时间:2024/05/29 16:58

Autocompletetextview自动完成文本框功能及用法


自动完成文本框(AutocompleteTextVeiw)是从EditText派生出来的,实际上它也是一个文本编辑框,但它比普通编辑框多了一个功能:当用户输入一定字符之后,自动完成文本框会显示一个下来菜单,提供用户从中选择,当用户选择了某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本。

使用AutocopleteTextView很简单,只要为他设置一个Adapter,该Adapter封装了AutocopleteTextView预设的提示文本

AutocompleteTextview除了可使用EditText提供的xml属性和方法之外,还支持下面的属性

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

  • 先看下效果图

这里写图片描述

  • 布局文件,布局文件中定义了两种不同的组件,看下面
    <!-- 定义一个自动完成文本框,指定输入一个字符后进行提示 -->    <AutoCompleteTextView        android:id="@+id/auto"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:completionHint="请选择"        android:dropDownHorizontalOffset="10dp"        android:completionThreshold="1"/>    <!-- 定义一个MultiAutoCompleteTextView组件 -->    <MultiAutoCompleteTextView        android:id="@+id/mauto"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:completionThreshold="1"/>
  • 两者的区别

    1、其中AutoCompleteTextView组件一个继承自 EditView 的 可编辑的文本视图,能够实现动态匹配输入的内容。如google搜索引擎当输入文本时可以根据内容显示匹配的热门信,重要方法如下

    clearListSelection(): 清除选中的列表项

    dismissDropDown ():如果存在 关闭下拉菜单

    getAdapter ():获取适配器

    2、MultiAutoCompleteTextView继承自 AutoCompleteTextView 的 可编辑的文本视图,能够对用户键入的文本进行有效地扩充提示,而不需要用户输入整个内容。(用户输入一部分内容,剩下的部分系统就会给予提示)。用户必须提供一个 MultiAutoCompleteTextView.Tokenizer 用来区分不同的子串。重要方法如下

    enoughToFilter (): 当文本长度超过阈值时过滤

    setTokenizer (MultiAutoCompleteTextView.Tokenizer t):用户正在输入时, tokenizer设置将用于确定文本相关范围内

    • 现在再看看在代码中引用
import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.MultiAutoCompleteTextView;/** 自动完成文本* */public class AotcompleteTextViewActivity extends Activity{    AutoCompleteTextView actv;    MultiAutoCompleteTextView mauto;    // 定义字符串数组,作为提示的文本    String[] data = new String[]{"zzz","zzzz","bbbb",            "bb","aaaaaa","aaa","sssss","ssss",            "aaaa","ccc","ccccc","ddd","ddddd",    };    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.aotucompletetextview);        // 创建一个ArrayAdapter,封装数组        ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, data);        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());    }}
  • dome中的位置,记得修改dome清单中的配置,其他类都可以删除,每个类都是一个控件,没有关系
    这里写图片描述

dome地址:http://download.csdn.net/download/bobo8945510/9631870

0 0
原创粉丝点击