Android 实现动态匹配输入的内容 AutoCompleteTextView和MultiAutoCompleteTextView

摘要:
AutoCompleteTextView1.函数:动态匹配输入内容。例如,百度搜索引擎可以在输入文本时根据内容显示匹配的热门信息。2.唯一属性:android:completionThreshold设置输入时自动匹配的字符数。使用AutoCOCompleteTextView自动匹配输入的内容。privateAutoCompleteTextViewacTextView;初始化控件acTextView=(A

AutoCompleteTextView
1.功能:
动态匹配输入的内容,如百度搜索引擎当输入文本时可以根据内容显示匹配的热门信息。
2.独特属性:
android:completionThreshold 设置输入多少字符时自动匹配

使用AutoCOmpleteTextView实现自动匹配输入的内容
private AutoCompleteTextView acTextView;
初始化控件
acTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
初始化数据源(代码里res数组又增加了一些)
private String[] res = new String[] { "moon", "month", "moonlight", "moonlight poet" };
创建一个适配器(这里使用ArrayAdapter)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, res);
讲adapter与当前AutoCompleteTextView绑定(通过.setAdapter()方法绑定)
acTextView.setAdapter(adapter);
在activity_main.xml设置当输入多少字符时出现adapter中的内容
android:completionThreshold="1"

MultiAutoCompleteTextView
1.功能
可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值会自动去匹配,可用在可短信,发邮件时选择联系人这种类型当中。
2.独特属性:
android:completionThreshold 设置输入多少字符时自动匹配
3.设置分隔符
mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

使用MultiAutoCOmpleteTextView实现自动匹配输入的内容
具体步骤和AutoCompleteTextView类似。
设置分隔符(设置以逗号为分隔符)
macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

Android 实现动态匹配输入的内容 AutoCompleteTextView和MultiAutoCompleteTextView第1张Android 实现动态匹配输入的内容 AutoCompleteTextView和MultiAutoCompleteTextView第2张
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <AutoCompleteTextView
        android:id="@+id/autoCompleteTextView1"
        android:completionThreshold="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入你要搜索的关键词"
        >

        <requestFocus />
    </AutoCompleteTextView>

    <MultiAutoCompleteTextView
        android:id="@+id/multiAutoCompleteTextView1"
        android:completionThreshold="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="请输入关键词(可多个,逗号分隔)" 
        />

    
</LinearLayout>
activity_main.xml
Android 实现动态匹配输入的内容 AutoCompleteTextView和MultiAutoCompleteTextView第1张Android 实现动态匹配输入的内容 AutoCompleteTextView和MultiAutoCompleteTextView第4张
package com.example.autocompletetextviewandmulti;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.os.Build;

public class MainActivity extends ActionBarActivity {
    
    private AutoCompleteTextView acTextView;
    private MultiAutoCompleteTextView macTextView;
    private String[] res = new String[] { 
            "apple", "banana", "China", "delicious", "eight", "fight", "good",
            "hello", "intelligence", "just", "kilometer", "like",
            "moon", "month", "moonlight", "moonlight poet",
            "night", "ok", "pear", "queue", "ring", "stack", "tail",
            "unique", "very", "week", "x-Men", "yellow", "zero"
            };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        acTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, res);
        acTextView.setAdapter(adapter);
        
        macTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1);
        macTextView.setAdapter(adapter);
        macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    }

}
MainActivity.java

效果:

Android 实现动态匹配输入的内容 AutoCompleteTextView和MultiAutoCompleteTextView第5张

免责声明:文章转载自《Android 实现动态匹配输入的内容 AutoCompleteTextView和MultiAutoCompleteTextView》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IOS 使用Autolayout实现UITableView的Cell动态布局和高度动态改变问题处理:Cannot find module (SNMPv2-TC): At line 10 in /usr/share/snmp/mibs/UCD-DLMOD-MIB.txt下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android 5

activity_main <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"...

Ubuntu上交叉编译valgrind for Android 4.0.4的过程与注意事项

编译环境:Ubuntu x86_64(Linux root 2.6.32-45-generic #101-Ubuntu SMP Mon Dec 3 15:39:38 UTC 2012 x86_64 GNU/Linux) 运行环境:Android 4.0.4 (Linux kernel 3.0.21 OMAP4460) 一、下载NDK9和valgrind...

android 开发环境 配置和说明

1. 安装 java jdk 因为android 开发通用是java 语言。还有很多工具软件都是java开发,所以java 虚拟机和开发包必须有。 http://www.oracle.com/technetwork/java/javase/downloads/index.html 注意安装版本。jdk10.xxxxx不会被旧的androstudio识别。...

uniapp 微信小程序 微信7.0.12版本IOS端部分request请求被缓存

在IOS端微信更新深色模式后(7.0.12版本),IOS端小程序会出现实时请求的数据无法实时渲染到页面上。 也在微信社区向官方反映过该情况 ----> https://developers.weixin.qq.com/community/develop/doc/00064a827907e869a61a7220456c00 但是官方要求提供原生代码(我...

【原生】CocosCreator Android和游戏的通讯 (Java和TS互相调用、传递JSON数据、监听返回键)

Cocos版本:2.4.4 参考: Cocos文档-Java原生反射机制 Cocos文档-JSB使用指南 一  Cocos中调用Android方法 二 Android中调用Cocos方法 三 传递JSON数据 四 监听返回键  五 遇到的问题 cocos和android的互相调用,在Java中可以调用TypeScript的方法,在TypeScript中可以...

Android DecorView浅析

摘要一、DecorView为整个Window界面的最顶层View。 二、DecorView只有一个子元素为LinearLayout。代表整个Window界面,包含通知栏,标题栏,内容显示栏三块区域。 三、LinearLayout里有两个FrameLayout子元素。 (20)为标题栏显示界面。只有一个TextView显示应用 (请发邮件到freege...