AutoCompleteTextView(自动完成文本框)
自动完成文本框从EditText派生而出,实际上也就是个文本框但是当用户输入一定字符之后,会显示一个菜单供用户选择,选完后自动填写。
android:completionHint:设置下拉菜单中的提示标题
android:completionHintView:定义提示视图中显示下拉菜单
android:completionThreshold:指定用户至少输入多少个字符才会显示提示
android:dropDownAnchor:设置下拉菜单的定位"锚点"组件,如果没有指定改属性, 将使用该TextView作为定位"锚点"组件
android:dropDownHeight:设置下拉菜单的高度
android:dropDownWidth:设置下拉菜单的宽度
android:dropDownHorizontalOffset:指定下拉菜单与文本之间的水平间距
android:dropDownVerticalOffset:指定下拉菜单与文本之间的竖直间距
android:dropDownSelector:设置下拉菜单点击效果
android:popupBackground:设置下拉菜单的背景
使用AutoComplete TextView很简单,只需要为他设置一个adapter即可,该adapter封装了AutoComplete TextView预设的提示文本
AutoCompleteTextView还派生一个MultiAtuoCompleteTextView,该子类的功能与AutoCompleteTextView基本相似,只是MultiAtuoCompleteTextView允许输入多个提示项,多个提示项以分隔符分隔,MultiAtuoCompleteTextView提供setTokenizer()方法设置分隔符。
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> //定义一个自动完成文本框,指定输入一个字符后提示 //定义一个组件
下面他们绑定同一个adapter所以提示内容一样
activity代码:
package com.example.myapplication;import android.util.Log;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.Button;import android.widget.ImageView;import android.widget.ListView;import android.widget.MultiAutoCompleteTextView;import android.widget.SimpleAdapter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MainActivity extends AppCompatActivity { private String[] books=new String[]{"疯狂Java讲义","疯狂前端开发","疯狂xml讲义","疯狂workflow讲义"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建一个Arrayadapter,封装数组 ArrayAdapter adapter1=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line,books); //android.R.layout.simple_dropdown_item_1line 默认的下拉条目样式 AutoCompleteTextView actv=findViewById(R.id.auto); //设置adapter actv.setAdapter(adapter1); MultiAutoCompleteTextView mauto=findViewById(R.id.mauto); mauto.setAdapter(adapter1); //为MultiAutoCompleteTextView设置分隔符 mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); }}
最后效果图
342BE43122AC9BBBCE14335B87CD6B78.jpg
D0D639499D4371953960B1A907357319.jpg
那个,。。。。额,由于虚拟机不知道什么原因输入不了文字,所以下载apk然后用手机截的图,有点大哈。
更多相关文章
- Android toolbar overflow菜单 文字显示不全
- Android NDK系列(三)-AS编写C文件没有提示和不识别NULL
- Android搜索自动提示功能
- 《Android/OPhone开发完全讲义》连载(6):为TextView组件加上边框
- android仿新浪微薄底部菜单
- 简单播放系统提示音 android
- Android 菜单资源