当然这里要要用到一些适配器
在Android中提供了两智能输入框,它们是MultiAutoCompleteTextView、AutoCompleteTextView。它们的功能大致一样,它和AutoCompleteTextView的区别就是MultiAutoCompleteTextView可以在输入框中一直增加新的选取值。编写方式也有所不同,在进行setAdapter之后还需要调用setTokenizer() 。下面详细介绍一下。
一、AutoCompleteTextView
1.简介
一个可编辑的文本视图,当用户输入信息后弹出提示。提示列表显示在一个下拉菜单中,用户可以从中选择一项,以完成输入。提示列表是从一个数据适配器获取的数据。
2.重要方法
clearListSelection():清除选中的列表项
dismissDropDown():如果存在关闭下拉菜单
getAdapter():获取适配器
3.创建须知
(1)布局文件
<AutoCompleteTextView
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
(2)程序
实例化适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);
设置适配器
edit.setAdapter(adapter);
二、MultiAutoCompleteTextView
1.简介
继承自AutoCompleteTextView,延长AutoCompleteTextView的长度,你必须要提供一个MultiAutoCompleteTextView.Tokenizer来区分不同的子串
2.重要方法
enoughToFilter():当文本长度超过阈值时过滤
performValidation():代替验证整个文本,这个子类方法验证每个单独的文字标记
setTokenizer(MultiAutoCompleteTextView.Tokenizer t);
用户正在输入时,tokenizer设置将用于确定文本相关范围内
3.使用须知
(1)布局文件
<MultiAutoCompleteTextView
android:id="@+id/edit1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
(2)程序
实例化适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);
设置适配器
edit.setAdapter(adapter);
确定范围
edit1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer())
下面是个例子
AutoCommitTest.java
Java代码
01.package org.hualang.auto; 02. 03.import android.app.Activity; 04.import android.os.Bundle; 05.import android.widget.ArrayAdapter; 06.import android.widget.AutoCompleteTextView; 07.import android.widget.MultiAutoCompleteTextView; 08. 09.public class AutoCommitTest extends Activity { 10. /** Called when the activity is first created. */ 11. private static final String[] autoString=new String[]{"welcome","well", 12. "weatch","weexeview","werap"}; 13. @Override 14. public void onCreate(Bundle savedInstanceState) { 15. super.onCreate(savedInstanceState); 16. setContentView(R.layout.main); 17. //关联关键字 18. ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, 19. android.R.layout.simple_dropdown_item_1line, 20. autoString); 21. AutoCompleteTextView autocomplete=(AutoCompleteTextView)findViewById(R.id.auto); 22. autocomplete.setAdapter(adapter); 23. MultiAutoCompleteTextView multi=(MultiAutoCompleteTextView) findViewById(R.id.multi); 24. //将adapter添加到AutoCompleteTextView中 25. multi.setAdapter(adapter); 26. multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 27. } 28.}
main.xml
Java代码
01.<?xml version="1.0" encoding="utf-8"?> 02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 03. android:orientation="vertical" 04. android:layout_width="fill_parent" 05. android:layout_height="fill_parent" 06. > 07.<TextView 08. android:layout_width="fill_parent" 09. android:layout_height="wrap_content" 10. android:text="自动提示功能演示" 11. /> 12.<AutoCompleteTextView 13. android:id="@+id/auto" 14. android:layout_width="fill_parent" 15. android:layout_height="wrap_content" 16./> 17.<MultiAutoCompleteTextView 18. android:id="@+id/multi" 19. android:layout_width="fill_parent" 20. android:layout_height="wrap_content" 21./> 22.</LinearLayout>