您的位置:首页 > 移动开发 > Android开发

Android组件复习之基本组件06—autocompletetextview自动完成文本框

2016-12-17 17:23 686 查看

Autocompletetextview自动完成文本框功能及用法

自动完成文本框(AutocompleteTextVeiw)是从EditText派生出来的,实际上它也是一个文本编辑框,但它比普通编辑框多了一个功能:当用户输入一定字符之后,自动完成文本框会显示一个下来菜单,提供用户从中选择,当用户选择了某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本。

使用AutocopleteTextView很简单,只要为他设置一个Adapter,该Adapter封装了AutocopleteTextView预设的提示文本

AutocompleteTextview除了可使用EditText提供的xml属性和方法之外,还支持下面的属性

android:completionHint :设置出现在下拉菜单中的提示标题

android:completionThreshold : 设置用户至少输入多少个字符才会显示提示

android:dropDownHorizontalOffset: 下拉菜单于文本框之间的水平偏移。默认与文本框左对齐

android:dropDownHeight: 下拉菜单的高度

android:dropDownWidth :下拉菜单的宽度

android:popupBackground :设置下拉菜单的背景

android:dropDownVerticalOffset: 垂直偏移量

先看下效果图



布局文件,布局文件中定义了两种不同的组件,看下面

<!-- 定义一个自动完成文本框,指定输入一个字符后进行提示 -->
<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="请选择"
android:dropDownHorizontalOffset="10dp"
android:completionThreshold="1"/>
<!-- 定义一个MultiAutoCompleteTextView组件 -->
<MultiAutoCompleteTextView
android:id="@+id/mauto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"/>


两者的区别

1、其中AutoCompleteTextView组件一个继承自 EditView 的 可编辑的文本视图,能够实现动态匹配输入的内容。如google搜索引擎当输入文本时可以根据内容显示匹配的热门信,重要方法如下

clearListSelection(): 清除选中的列表项

dismissDropDown ():如果存在 关闭下拉菜单

getAdapter ():获取适配器

2、MultiAutoCompleteTextView继承自 AutoCompleteTextView 的 可编辑的文本视图,能够对用户键入的文本进行有效地扩充提示,而不需要用户输入整个内容。(用户输入一部分内容,剩下的部分系统就会给予提示)。用户必须提供一个 MultiAutoCompleteTextView.Tokenizer 用来区分不同的子串。重要方法如下

enoughToFilter (): 当文本长度超过阈值时过滤

setTokenizer (MultiAutoCompleteTextView.Tokenizer t):用户正在输入时, tokenizer设置将用于确定文本相关范围内

现在再看看在代码中引用

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
/*
* 自动完成文本
* */
public class AotcompleteTextViewActivity extends Activity
{
AutoCompleteTextView actv;
MultiAutoCompleteTextView mauto;
// 定义字符串数组,作为提示的文本
String[] data = new String[]{"zzz","zzzz","bbbb",
"bb","aaaaaa","aaa","sssss","ssss",
"aaaa","ccc","ccccc","ddd","ddddd",
};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.aotucompletetextview);
// 创建一个ArrayAdapter,封装数组
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, data);
actv = (AutoCompleteTextView)findViewById(R.id.auto);
// 设置Adapter
actv.setAdapter(aa);

//多个自动完成文本
mauto = (MultiAutoCompleteTextView)findViewById(R.id
a7e8
.mauto);
// 设置Adapter
mauto.setAdapter(aa);
// 为MultiAutoCompleteTextView设置分隔符
mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}


dome中的位置,记得修改dome清单中的配置,其他类都可以删除,每个类都是一个控件,没有关系



dome地址:http://download.csdn.net/download/bobo8945510/9631870

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐