Android控件——AutoCompleteTextView动态自动匹配输入内容
来源:互联网 发布:陈奕迅 必听 知乎 编辑:程序博客网 时间:2024/05/22 15:59
什么是动态自动匹配输入内容呢?举个例子,当我们在百度等搜索引擎的输入框中输入想要搜索的关键词,输入框下面会提示很多相关联的热门搜索项,效果图如下:
那在安卓中如何实现这种效果呢?在这里给大家推荐两个Android的控件:
- AutoCompleteTextView
- MultiAutoCompleteTextView
一、AutoCompleteTextView
- 独特属性:android:completionThreshold=”2”—–设置输入多少字符时自动匹配
首先,我们先在res文件夹(我用的是AndroidStudio)下的active_main.xml下面加入AutoCompleteTextView控件,并设置好大小宽高等其他一些基础属性
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.admin.demo.MainActivity"> <AutoCompleteTextView android:completionThreshold="2" android:id="@+id/autoCompleteTextView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入你要搜索的关键词" /></LinearLayout>
接着,我们到java目录下的MainActivity.java加入相应的代码:
package com.example.admin.demo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;public class MainActivity extends AppCompatActivity { private AutoCompleteTextView acTextView; //建立一个数组,保存我们想要提示的文本内容 private String[] res = {"ab1","ab2","ab3"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件,返回类型view强制转换成AutoCompleteTextView acTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); //添加适配器,并初始化数据源,用来匹配文本框输入的内容 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res); //将适配器与当前控件绑定 acTextView.setAdapter(adapter); }}
这样代码就完成了,因为我们在AutoCompleteTextView控件中设置了android:completionThreshold=”2”,即当我们输入到第2个字符时开始进行匹配,让我们将当前应用程序布置到模拟器里面看一下效果:
二、MultiAutoCompleteTextView
有时候我们在文本框中需要进行多次输入,比如我们在发短信或者写邮件的时候,往往需要多选联系人:
在这种时候,我们就可以选择MultiAutoCompleteTextView:
- 支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配
- 独特属性:android:completionThreshold=”2”—–设置输入多少字符时自动匹配
- 设置分隔符:macTextView.setTokenizer(newMultiAutoCompleteTextView.CommaTokenizer());
这个控件的使用方法跟AutoCompleteTextView大体上还是差不多的,只是多了设置分隔符这一步
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.admin.demo.MainActivity"> <MultiAutoCompleteTextView android:completionThreshold="2" android:id="@+id/multiAutoCompleteTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入收件人" /></LinearLayout>
MainActivity.java:
package com.example.admin.demo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.MultiAutoCompleteTextView;public class MainActivity extends AppCompatActivity { private MultiAutoCompleteTextView macTextView; //建立一个数组,保存我们想要提示的文本内容 private String[] res = {"ab1","ab2","ab3","cd1","cd2","cd3"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件,返回类型view强制转换成AutoCompleteTextView macTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView); //添加适配器,并初始化数据源,用来匹配文本框输入的内容 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res); //将适配器与当前控件绑定 macTextView.setAdapter(adapter); //设置以逗号为分隔符为结束的符号 macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); }}
运行结果:
阅读全文
1 0
- Android控件——AutoCompleteTextView动态自动匹配输入内容
- Android控件之自动匹配输入内容AutoCompleteTextView
- Android - AutoCompleteTextView (输入框动态匹配内容)
- 安卓控件——AutoCompleteTextView和MultiAutoCompleteTextView实现自动匹配输入的内容
- 动态自动匹配输入的控件AutoCompleteTextView和MultiAutoCompleteTextView
- Android控件AutoCompleteTextView-自动匹配
- [Android] AutoCompleteTextView:自动完成输入内容的控件
- 输入框自动匹配控件AutoCompleteTextView
- AutoCompleteTextView自动完成输入内容的控件
- android 输入框自动匹配-AutoCompleteTextView
- android autocompletetextview(自动匹配控件)类比listview
- Android入门(4)——AutoComplete TextView实现动态自动匹配输入的内容
- [Android] AutoCompleteTextView:自动完成输入内容的控件(自动补全)
- AutoCompleteTextView自动匹配输入框中的内容【转】
- 使用AutoCompleteTextView实现自动匹配输入的内容
- 使用AutoCompleteTextview实现动态匹配输入的内容
- AutoCompleteTextView,MultiAutoCompleteTextView自动完成输入内容的控件
- AutoCompleteTextView 自动完成输入内容对的控件
- 【BZOJ】1468 Tree 点分治
- freopen文件操作后控制台输入输出
- Factory
- linux常见命令1
- bzoj1409: Password
- Android控件——AutoCompleteTextView动态自动匹配输入内容
- 初学Android之飞机大战(三)——myPlane
- fl2440模块学习——RT3070无线网卡SoftAP模式实现路由器功能
- switch的表达式考察
- 怎么复制豆丁网的文字
- HDU-5835 一道特别简单的题
- 48. Rotate Image
- QT Qtablewidget表头设置(从Qstring中提取表头)
- 数据结构实验之栈三:后缀式求值