AutoCompleteTextView文本提示框

提示文本框是会经常用到的一个功能。比如说百度、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;

	@Override
	protected 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);
	}

	@Override
	public 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() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				textView.setText("您选择的是"+prompt[(int) arg3]);
				
			}
		});

运行结果如下


当然还可以对AutoCompleteTextView添加更多的事件处理。这里将不再赘述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值