您的位置:首页 > 其它

AutoCompleteTextView(自动提示)

2012-12-12 10:56 344 查看
AutoCompleteTextView的功能类似于百度或者Google在搜索栏输入信息的时候,弹出的与输入信息接近的提示信息。

当然这里要要用到一些适配器

Android中提供了两智能输入框,它们是MultiAutoCompleteTextView、AutoCompleteTextView。它们的功能大致一样,它和AutoCompleteTextView的区别就是MultiAutoCompleteTextView可以在输入框中一直增加新的选取值。编写方式也有所不同,在进行setAdapter之后还需要调用setTokenizer()
。下面详细介绍一下。

一、AutoCompleteTextView

1.简介

一个可编辑的文本视图,当用户输入信息后弹出提示。提示列表显示在一个下拉菜单中,用户可以从中选择一项,以完成输入。提示列表是从一个数据适配器获取的数据。

2.重要方法

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

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

      getAdapter():获取适配器

3.创建须知

 (1)布局文件

<AutoCompleteTextView

android:id="@+id/edit"

  android:layout_width="match_parent"

android:layout_height="wrap_content" />

 (2)程序

    实例化适配器

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);

    设置适配器

    edit.setAdapter(adapter);

二、MultiAutoCompleteTextView

1.简介

继承自AutoCompleteTextView,延长AutoCompleteTextView的长度,你必须要提供一个MultiAutoCompleteTextView.Tokenizer来区分不同的子串

2.重要方法

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

      performValidation():代替验证整个文本,这个子类方法验证每个单独的文字标记

      setTokenizer(MultiAutoCompleteTextView.Tokenizer t);

用户正在输入时,tokenizer设置将用于确定文本相关范围内

3.使用须知

  (1)布局文件

<MultiAutoCompleteTextView

android:id="@+id/edit1"

  android:layout_width="match_parent"

  android:layout_height="wrap_content" />   

  (2)程序

    实例化适配器

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);

    设置适配器

    edit.setAdapter(adapter);

    确定范围

    edit1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer())

下面是个例子

AutoCommitTest.java

Java代码

01.package org.hualang.auto;

02.

03.import android.app.Activity;

04.import android.os.Bundle;

05.import android.widget.ArrayAdapter;

06.import android.widget.AutoCompleteTextView;

07.import android.widget.MultiAutoCompleteTextView;

08.

09.public class AutoCommitTest extends Activity {

10.    /** Called when the activity is first created. */

11.        private static final String[] autoString=new String[]{"welcome","well",

12.                "weatch","weexeview","werap"};

13.    @Override

14.    public void onCreate(Bundle savedInstanceState) {

15.        super.onCreate(savedInstanceState);

16.        setContentView(R.layout.main);

17.        //关联关键字

18.        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,

19.                        android.R.layout.simple_dropdown_item_1line,

20.                        autoString);

21.        AutoCompleteTextView autocomplete=(AutoCompleteTextView)findViewById(R.id.auto);

22.        autocomplete.setAdapter(adapter);

23.        MultiAutoCompleteTextView multi=(MultiAutoCompleteTextView) findViewById(R.id.multi);

24.        //将adapter添加到AutoCompleteTextView中

25.        multi.setAdapter(adapter);

26.        multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

27.    }

28.}


main.xml

Java代码

01.<?xml version="1.0" encoding="utf-8"?>

02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

03.    android:orientation="vertical"

04.    android:layout_width="fill_parent"

05.    android:layout_height="fill_parent"

06.    >

07.<TextView

08.    android:layout_width="fill_parent"

09.    android:layout_height="wrap_content"

10.    android:text="自动提示功能演示"

11.    />

12.<AutoCompleteTextView

13.        android:id="@+id/auto"

14.        android:layout_width="fill_parent"

15.        android:layout_height="wrap_content"

16./>

17.<MultiAutoCompleteTextView

18.        android:id="@+id/multi"

19.        android:layout_width="fill_parent"

20.        android:layout_height="wrap_content"

21./>

22.</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: