实现动态自动匹配输入的内容

AutoCompleteTextView

1.功能

  动态匹配输入的内容,如百度搜索引擎当输入文本时可以根据内容显示匹配的热门信息。

2.独特属性

  android:completionThreshold="2"

  ——设置输入多少字符时自动匹配

package com.example.autocompletetextview;

import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor.AutoCloseInputStream;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends Activity{

private AutoCompleteTextView acTextView;
//3
private String [] res ={"beijing1","beijing2","beijing3","beijing4","shanghai","guangzhou"};

@Override
protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// 第一步:初始化控件

// 第二步:需要一个适配器

// 第三步:初始化数据源——这数据源去匹配文本框输入的内容

// 第四步:将Adapter与当前的AutoCompleteTextview绑定

// 1
acTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
// 2
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, res);
// 4
acTextView.setAdapter(adapter);
}
}

 

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7    android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10     <AutoCompleteTextView
11         android:completionThreshold="3"
12         android:id="@+id/autoCompleteTextView1"
13         android:layout_width="match_parent"
14         android:layout_height="wrap_content"
15         android:hint="请输入文字"
16         android:layout_alignParentTop="true"
17         android:layout_centerHorizontal="true"
18    />
19 </RelativeLayout>

 

 

 

MultiAutoCompleteTextView

1.功能

  可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时自动去匹配,可用在发短信,发邮件时选择联系人这种类型当中。

2.独特属性

  android:completionThreshold="2"

  ——设置输入多少个字符时自动匹配

3.设置分隔符

  mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

package com.example.autocompletetextview;

import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor.AutoCloseInputStream;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;

public class MainActivity extends Activity
{
    /*
     * 可以通过这个控件实现类似百度搜索的功能
     */
    private AutoCompleteTextView acTextView;
//3
    private String [] res ={"beijing1","beijing2","beijing3","beijing4","shanghai","guangzhou"};
    
    
    private MultiAutoCompleteTextView maTextView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        第一步:初始化控件
//        第二步:需要一个适配器
//        第三步:初始化数据源——这数据源去匹配文本框输入的内容
//        第四步:将Adapter与当前的AutoCompleteTextview绑定
//        1
        acTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
//        2
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, res);
//        4
        acTextView.setAdapter(adapter);
        
        
        
//        第一步:初始化控件
//        第二步:需要一个适配器
//        第三步:初始化数据源——这数据源去匹配文本框输入的内容
//        第四步:将Adapter与当前的AutoCompleteTextview绑定
//        第五步:设置分隔符
        maTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);
        maTextView.setAdapter(adapter);
//        设置以逗号为分隔符为结束的符号
        maTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    }

}

AutoCompleteTextView和MultiAutoCompleteTextView的区别在于前者输入时只提供一次匹配,而后者,在输入后支持多次匹配

 

AutoCompleteTextView用在搜索上
MultiAutoCompleteTextView用在邮箱发件等

posted @ 2016-03-03 20:39  沉默的羊癫疯  阅读(295)  评论(0编辑  收藏  举报