AutoCompleteTextView文本提示框

来源:互联网 发布:算法导论第三版 编辑:程序博客网 时间:2024/05/06 09:12

提示文本框是会经常用到的一个功能。比如说百度、google搜索信息的时候在搜索框的下方会出现联想词。如图




那么android项目中的提示文本框需要的就是AutoCompleteTextView这个组件。
java.lang.Object   ↳android.view.View    ↳android.widget.TextView     ↳android.widget.EditText      ↳android.widget.AutoCompleteTextView


从API中可以发现他是直接继承EditText类的,因此可以看出来,AutoCompleteTextView组件所提供的也是一个文本输入功能,只是比起EditText来讲功能更加的丰富一些。
首先AutoCompleteTextView的常用方法为:
public void clearListSelection() // 清除所有的下拉列表项public ListAdapter getAdapter () // 取得数据集public void setAdapter (T adapter) // 设置数据集public void setOnClickListener (View.OnClickListener listener) // 设置单击事件public void setOnItemClickListener (AdapterView.OnItemClickListener l) // 在选项上设置单击事件public void setOnItemSelectedListener (AdapterView.OnItemSelectedListener l) // 选项选中时的单击事件

要使用AutoCompleteTextView首先得在activity_main.xml里面进行配置组件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context=".MainActivity" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />    <AutoCompleteTextView        android:id="@+id/myauto"        android:layout_width="fill_parent"        android:layout_height="wrap_content" /></LinearLayout>

在布局文件之中只是定义了组件,那么之后的操作将在MainActivity.java程序之中进行控制

package com.demo.autocompletetextviewpro;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;public class MainActivity extends Activity {// 定义数据集private String[] prompt = new String[] { "AN", "AND", "ANDROID","ANDROID 开发", "ANDROID 示例" };// 定义组件private AutoCompleteTextView auto = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 定义数据集ArrayAdapter<String> prom = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, prompt);// 取得组件auto = (AutoCompleteTextView) findViewById(R.id.myauto);// 设置内容auto.setAdapter(prom);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

这里只是简单的对文本提示框进行了显示操作,并没有进行太复杂的内容。运行结果如下:


当然也可以对程序添加各种事件。例如setOnItemClickListener()事件的添加

// 设置监听auto.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {textView.setText("您选择的是"+prompt[(int) arg3]);}});

运行结果如下


当然还可以对AutoCompleteTextView添加更多的事件处理。这里将不再赘述
原创粉丝点击