自动完成文本框(AutoCompleteTextView)从EditText继承过来。因此它实质也是一个文本编辑框。但是比起普通的文本编辑框,AutoCompleteTextView多了一个功能:当用户在文本编辑框中输入一定文本之后,Auto
CompleteTextView会显示出一个包含用户输入内容的下拉菜单,供用户选择,当用户选择其中的某个菜单项后 ,AutoCompleteTextView会将用户选择的菜单项自动填写到该文本框,功能类似于百度或者Google在搜索栏输入信息的时候,弹出的与输入信息接近的提示信息。
AutoCompleteTextView除了可以使用从父类EditText继承过来的XML属性和JAVA方法之外,还支持如下的XML属性和方法
使用AutoCompleteTextView很简单,只要为他设置一个Adapter,该Adapter封装了AutoCompleteTextView预设的提示文本。
在下面的XML界面布局文件中包含了一个AutoCompleteTextView组件,界面布局采用了线性布局。XML布局文件的代码如下:
<?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"
>
<!-- 定义一个自动完成文本框 ,android:completionThreshold="1":指定输入一个字符后进行提示 -->
<!-- android:dropDownVerticalOffset="30dip" -->
<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:completionHint="请选择您喜欢的游戏:"
android:dropDownHorizontalOffset="130dp"
android:completionThreshold="1"
/>
</LinearLayout>
接着 我们应该设置下拉菜单的文本资源,我们用XML文件将下拉菜单的提示文本的所有内容放到values目录下的strings.xml资源文件中,string.xml的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, AutoCompleteTextViewTestActivity!</string>
<string name="app_name">AutoCompleteTextViewTest</string>
<string-array name="games_array">
<item>魔兽世界</item>
<item>魔兽争霸</item>
<item>美女连连看</item>
<item>埃及祖玛</item>
<item>龙之谷</item>
<item>上古战争</item>
<item>超级俄罗斯方块</item>
<item>超级马里奥</item>
</string-array>
</resources>
接下来,我们应该在JAVA程序代码中将AutoCompleteTextView组件与strings.xml中下拉菜单提示文本资源通过用Adapter进行绑定。AutoCompleteTextViewTestActivity.java具体代码如下:
package com.xueyouxi.autocomplettextview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class AutoCompleteTextViewTestActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final AutoCompleteTextView auto = (AutoCompleteTextView)findViewById(R.id.auto);
//为auto提供Adapter
String[] games = this.getResources().getStringArray(R.array.games_array);
ArrayAdapter<String> ada = new ArrayAdapter<String>(this, R.layout.list_item , games);
auto.setAdapter(ada);
}
}
本文介绍Android中的AutoCompleteTextView组件,该组件继承自EditText并具备自动完成功能。文章详细讲解了如何配置XML布局文件来实现自动完成效果,并展示了如何在Java代码中绑定适配器以填充建议列表。
1965

被折叠的 条评论
为什么被折叠?



