高级控件之自动完成文本框(AutoCompleteTextView)
2016-12-05 11:48
866 查看
一.自动完成文本框的基础知识
在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,这种效果在Android 中是用AutoCompleteTextView实现的。(一)效果:
AutoCompleteTextView继承与EditText,拥有EditText的所有属性和方法。
(二)XML配置:
<AutoCompleteTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:completionThreshold="2"/>
(三)常用属性:
android:completionHint 用于弹出的下拉菜单指定提示标题android:completionThreshold 用于指定用户至少输入几个字符才会显示提示
android:dropDownHeight 用于指定下拉菜单的高度
android:dropDownHorizontalOffset 用于指定下拉腰间与文本之间的水平偏移.下拉腰间默认与文本左对齐
android:dropDownVerticalOffset 用于指定下拉腰间与文本之间的垂直领衔.下拉 菜单默认紧跟文本框
android:dropDownWidth 用于指定下拉菜单的宽度
android:popupBackground 用于为下拉菜单设置背景
(四)适配器:
AutoCompleteTextView组件必须设置数据,一般是字符串数组,而我们需要将视图与数据 组装起来,那么这时我们就需要使用到适配器了使用setAdapter(adapter)方法传入适配器
如果每一行是的文本内容,传入最简单的适配器ArrayAdapter就可以了。
如果要显示图像加文本或更加复杂的内容,就要使用SimpleAdapter或Base Adapter。
二.简单示例的演示
(一)布局文件activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- 自动完成文本框 --> <MultiAutoCompleteTextView android:id="@+id/main_mact" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="1" android:hint="输入姓名" android:singleLine="true" /> </RelativeLayout>
(二)java代码设计
package com.example.lesson7_multiautocompletetextview; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.MultiAutoCompleteTextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 实例化对象 MultiAutoCompleteTextView mact = (MultiAutoCompleteTextView) findViewById(R.id.main_mact); // 数据源 String array[] = { "limei", "wangmei", "liming", "jianglan", "huangbei", "lihong", "liwen" }; //创建Adapter,这里的android.R.layout.simple_list_item_1是Android系统中创建好的布局文件 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array); //设置可以添加多个人以道号来区分添加的人 mact.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); mact.setAdapter(adapter); } }
程序运行后的效果:
输入简单字符后显示的效果:
点击选择后,再输入的效果:
这里代码已经设置可以多次选择,并在后面添加,如果没有设置在后面添加是会把原来选择的内容替换掉的。
这里也可以想EditText一样获取文本框内输入的信息,进行相应的操作。
这里的数据也可以是从本地中或数据库中获取到的数据;
这里每一行是视图也可以显示很复杂的界面,这就需要设置更加复杂的Adapter,比如SimpleAdapter或BaseAdapter。
这里有详细介绍Adapter的文章:
http://blog.csdn.net/wenzhi20102321/article/details/52796163?locationNum=11&fps=1
相关文章推荐
- Android高级组件AutoCompleteTextView自动完成文本框使用详解
- 移植Android4.0中的AutoCompleteTextView自动完成文本框控件用于低版本的系统
- Adapter类型控件之AutoCompleteTextView(自动完成文本框)&MultiAutoCompleteTextView(多提示项的自动完成文本框)
- Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】
- Android 高级UI组件之自动完成文本框(AutoCompleteTextView)
- AutoCompleteTextView-------android 高级控件(自动补全文本框)
- Android:自动完成文本框(AutoCompleteTextView、MultiAutoCompleteTextView )
- 自动完成文本框(AutoCompleteTextView)的功能及用法
- Android组件复习之基本组件06—autocompletetextview自动完成文本框
- 自动完成文本框(AutoCompleteTextView)提示文本框
- Android -AutoCompleteTextView-简单又好用的自动完成文本框
- Android学习笔记(六)AutoCompleteTextView自动完成文本框
- Android开发10.2:UI组件AutoCompleteTextView(自动完成文本框)
- Android开发10.2:UI组件AutoCompleteTextView(自动完成文本框)
- MultiAutoCompleteTextView和AutoCompleteTextView两个自动完成功能控件的使用
- AutoCompleteTextView 和 MultiAutoCompleteTextView 自动完成文本控件
- 输入内容自动完成文本框(AutoCompleteTextView )
- [Android] AutoCompleteTextView:自动完成输入内容的控件
- 安卓自动完成文本框(autoCompleteTextView)
- AutoCompleteTextView使用——自动完成文本框