时间:2021-11-04 10:01:33 | 栏目:Android代码 | 点击:次
Android实现动态自动匹配的控件主要有MultiAutoCompleteTextView和AutoCompleteTextView
MultiAutoCompleteTextView:
可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配
可用在发短信,发邮件时选择联系人这种类型当中,使用时需要执行设置分隔符方法.
AutoCompleteTextView:
支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据
两个控件都可以很灵活的预置匹配的那些数据,并且可以设置输入多少值时开始匹配等等功能
效果图如下
输入相应的字符就会出现相应的提示,具体操作如下
在MainActivity.java中
package com.example.myapplication; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.MultiAutoCompleteTextView; public class MainActivity extends AppCompatActivity { //初始化控件 private AutoCompleteTextView autoCompleteTextView; private MultiAutoCompleteTextView multiAutoCompleteTextView; //初始化数据源 private String [] res = {"biejing","nangchang","chengdu","shanghai"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * AutoCompleteTextView的用法 */ autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.auto_textView); //创建适配器 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res); //将adapter与autoCompleteTextView绑定 autoCompleteTextView.setAdapter(adapter); /** * MultiAutoCompleteTextView的用法 */ multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.mauto_textView); //将adapter与multiAutoCompleteTextView绑定 multiAutoCompleteTextView.setAdapter(adapter); //设置以逗号为分隔符结束的符号 multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } }
在activity_layout.xml中
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.myapplication.MainActivity" android:orientation="vertical" > <AutoCompleteTextView android:completionThreshold="3" android:id="@+id/auto_textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入关键字" /> <MultiAutoCompleteTextView android:hint="请输入多个关键字" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/auto_textView" android:id="@+id/mauto_textView" /> </RelativeLayout>