zoukankan      html  css  js  c++  java
  • AutoCompleteTextView(自动提示)

    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>


  • 相关阅读:
    java
    java
    Java hashCode() 和 equals()
    Python可变参数*和**
    Hadoop Mapreduce分区、分组、二次排序
    Java 内部类
    java valueOf()函数
    java接口和抽象类
    Java instanceof运算符
    JAVA ==号和equals()的区别
  • 原文地址:https://www.cnblogs.com/hopeanCom/p/2845437.html
Copyright © 2011-2022 走看看