API Demo 学习笔记——AutoCompleteTextView

来源:互联网 发布:软件开发求职能力 编辑:程序博客网 时间:2024/06/17 08:57

API Demo 学习笔记——AutoCompleteTextView

 (2011-12-27 14:27:36)
转载
标签: 

android

 

autocomplete

 

textview

 

it

 

AutoCompleteTextView的功能类似于百度或者Google在搜索栏输入信息的时候,弹出的与输入信息接近的提示信息。当然这里要要用到一些适配器:

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

下面详细介绍一下。

一、AutoCompleteTextView

1.简介

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

2.重要方法

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

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

      getAdapter():获取适配器

 一些属性:

            android:hint="":文本框默认显示的提示信息
            android:completionHint="":Defines the hint displayed in the drop down
 menu.
            android:completionHintView="@layout/simple_dropdown"——Defines the hint view displayed in the drop down  menu.

         completionThreshold:它的值决定了你在AutoCompleteTextView至少输入几个字符,它才会具有自动提示的功能。默认最多提示20条。

        dropDownAnchor:它的值是一个View的ID,指定后,AutoCompleteTextView会在这个View下弹出自动提示。

        dropDownSelector:应该是设置自动提示的背景色之类的,Selector in a drop down list。

        dropDownWidth:设置自动提示列表的宽度。

3.创建须知

 (1)布局文件

XML/HTML代码
  1. <AutoCompleteTextView  android:id="@+id/edit"  android:layout_width="match_parent"   
  2. android:layout_height="wrap_content" />  
  3.   

 (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)布局文件

 XML/HTML代码

  1. <MultiAutoCompleteTextView  
  2.   
  3. android:id="@+id/edit1"  
  4.   
  5.     android:layout_width="match_parent"  
  6.   
  7.     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())

下面是个例子

Java代码
  1. AutoCommitTest.java   
  2.   
  3. view plaincopy to clipboardprint?   
  4. package org.hualang.auto;     
  5. import android.app.Activity;     
  6. import android.os.Bundle;     
  7. import android.widget.ArrayAdapter;     
  8. import android.widget.AutoCompleteTextView;     
  9. import android.widget.MultiAutoCompleteTextView;     
  10. public class AutoCommitTest extends Activity     
  11.          
  12.     private static final String[] autoString=new String[]{"welcome","well"    
  13.         "weatch","weexeview","werap"};                                          
  14.     @Override     
  15.     public void onCreate(Bundle savedInstanceState)     
  16.         super.onCreate(savedInstanceState);     
  17.         setContentView(R.layout.main);     
  18.         //关联关键字     
  19.         ArrayAdapter<String> adapter=new ArrayAdapter<String>(this    
  20.                 android.R.layout.simple_dropdown_item_1line,     
  21.                 autoString);     
  22.         AutoCompleteTextView autocomplete=(AutoCompleteTextView)findViewById(R.id.auto);     
  23.         autocomplete.setAdapter(adapter);     
  24.         MultiAutoCompleteTextViemulti=MultiAutoCompleteTextView) findViewById(R.id.multi);        //将adapter添加到AutoCompleteTextView中     
  25.         multi.setAdapter(adapter);     
  26.         multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());     
  27.         
  28.     
  29.     
  30.   

 main.xml

XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8"?>     
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     
  3.     android:orientation="vertical"     
  4.     android:layout_width="fill_parent"     
  5.     android:layout_height="fill_parent"     
  6.     >     
  7. <TextView       
  8.     android:layout_width="fill_parent"      
  9.     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. </LinearLay
0 0
原创粉丝点击