android学习笔记26--------------AutoCompleteTextView 与 MultiAutoCompleteTextView
来源:互联网 发布:js onload ready 编辑:程序博客网 时间:2024/05/16 10:13
1、简介
在我们平常上网的时候经常会用到谷歌或百度,在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,非常方便。这种效果在Android中是用AutoCompleteTextView实现的AutoCompleteTextView是一个可以编辑的文本view,当用户键入时,会自动显示完成建议信息。
建议列表显示在下拉列表框中,可以选中某项代替编辑框里的内容。
当用户点击回车键时,或者什么也没有选中点击ENTER建时下拉列表会自动消失。
建议列表是从一个数据适配器获取的数据。
import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.AdapterView.OnItemClickListener;public class AutoActivity extends Activity{private AutoCompleteTextView autoCompleteTextView = null;private final String[] Citys = new String[]{"Belgium", "France", "Italy", "Germany", "Spain", "Sppp", "Itaggg"};@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.AutoCompleteTextView);// 配置设配器ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(AutoActivity.this,android.R.layout.simple_dropdown_item_1line, Citys);autoCompleteTextView.setAdapter(arrayAdapter);autoCompleteTextView.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id){ System.out.println(autoCompleteTextView.getText().toString());}});}}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <AutoCompleteTextView android:id="@+id/AutoCompleteTextView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:completionThreshold="1" /> </LinearLayout>
补充:
completionThreshold:它的值决定了你在AutoCompleteTextView至少输入几个字符,它才会具有自动提示的功能。另,默认最多提示20条。
dropDownAnchor:它的值是一个View的ID,指定后,AutoCompleteTextView会在这个View下弹出自动提示。
dropDownSelector:应该是设置自动提示的背景色之类的,没有尝试过,有待进一步考证。
dropDownWidth:设置自动提示列表的宽度。
public class MultiAutoCompleteTextViewActivity extends Activity{private MultiAutoCompleteTextView autoCom = null;;private Button btnClear = null;private String[] normalString = null;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);normalString = new String[]{ "android", "android sxp", "sxp", "sxp wx" };autoCom = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);btnClear = (Button) findViewById(R.id.btn);// simple_dropdown_item_1line// 简单的一些样式,貌似是自定义的ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, normalString);autoCom.setAdapter(adapter);// setTokenizer(); // Sets the Tokenizer 标记生成器 that will be used to// determine the relevant range of the text where the user is typing. //// CommaTokenizer(): // 这个简易的组件可以用于一些列表中,这些列表包含被逗号以及一个或数个空格断开的项目。 //// 不太理解,这个方法不加的话没法自动完成文本;添加的话又觉得是废话,列表当然以逗号分隔了autoCom.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());btnClear.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){autoCom.setText("");}});}}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:id="@+id/textView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="请输入" android:textSize="20px" ></TextView> <MultiAutoCompleteTextView android:id="@+id/multiAutoCompleteTextView" android:layout_width="260px" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="" /><Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="清除" > </Button></LinearLayout>
AutoCompleteTextView 与 MultiAutoCompleteTextView的区别:
AutoCompleteTextView 只匹配一次
MultiAutoCompleteTextView可以匹配多次
- android学习笔记26--------------AutoCompleteTextView 与 MultiAutoCompleteTextView
- AutoCompleteTextView与MultiAutoCompleteTextView学习笔记
- android中的AutoCompleteTextView与MultiAutoCompleteTextView
- Android控件---AutoCompleteTextView与MultiAutoCompleteTextView
- Android UI学习笔记之 MultiAutoCompleteTextView和AutoCompleteTextView
- Android学习之AutoCompleteTextView和MultiAutoCompleteTextView
- Android第六课;AutoCompleteTextView与MultiAutoCompleteTextView
- AutoCompleteTextView与MultiAutoCompleteTextView
- AutoCompleteTextView与MultiAutoCompleteTextView
- AutoCompleteTextView与MultiAutoCompleteTextView
- android AutoCompleteTextView和MultiAutoCompleteTextView
- Android学习备忘013——AutoCompleteTextView&MultiAutoCompleteTextView
- android学习案例1——AutoCompleteTextView、MultiAutoCompleteTextView
- Android学习-常见的UI控件 AutoCompleteTextView和MultiAutoCompleteTextView
- AutoCompleteTextView与MultiAutoCompleteTextView的使用
- AutoCompleteTextView与MultiAutoCompleteTextView简单使用
- Android自动提示--AutoCompleteTextView、MultiAutoCompleteTextView
- android的MultiAutoCompleteTextView、AutoCompleteTextView区别
- linux查看内核版本、系统版本、系统位数(32or64)
- 给MyEclipse加入反编译.CLASS文件的功能
- 背景与交际
- 多线程--C#利用多线程实现消费者和生产者模式
- 关于PHP与Apache关系的解释
- android学习笔记26--------------AutoCompleteTextView 与 MultiAutoCompleteTextView
- 简单干净的C#方法设计案例:SFCUI.AjaxLoadPage()之二
- Fiddler Can Make Debugging Easy
- android 仿iphone tab实现
- Android入门第十五篇之ActivityGroup + GridView 实现Tab分页标签
- application/x-www-form-urlencoded 字符编码
- C++
- Android使用LocalSocket抓取数据
- 循环缓冲区(参考linux内核Kfifo)