前言
我们在上百度搜索的时候,只需要输入一个字,就会在下面显示可能的关键字让你挑选,给我们带来了很大的方便,在Android里我们也可以实现此效果。
思路
在Android里我们需要使用AutoCompleteTextView对象和ArrayAdapter就能达到此效果。
我们先在布局文件中放置一个AutoCompleteTextView控件,然后预先设置好字符串数组的内容,其次再将字符串数组放置到ArrayAdapter里,最后用AutoConpeleteTextView的setAdapter()方法把ArrayAdapter对象添加进去就可以完成了。
实现步骤
一:布局文件编写
1.1 main.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"
>
<AutoCompleteTextView
android:id="@+id/actv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</AutoCompleteTextView>
</LinearLayout>
二:代码文件编写
2.1 MainActivity.java
package com.menglin.autocompletetextviewandarray;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
public class MainActivity extends Activity
{
//预先设置好字符串数组的内容
private static final String[] strAutoArray = new String[]{"刘德华","刘诗诗","刘恺威","刘若英"};
AutoCompleteTextView actv;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//加载布局文件main.xml
setContentView(R.layout.main);
//得到AutoCompleteTextView对象
actv = (AutoCompleteTextView)findViewById(R.id.actv);
//创建ArrayAdapter对象,并将strAutoArray字符串数组作为参数传入,第二个参数是出现下拉列表框的样式,在这里我们采用系统的样式,第三个参数为自动提示的数据来源,在这里就是我们的字符串数组
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, strAutoArray);
//将ArrayAdapter对象添加到AutoCompleteTextView对象当中
actv.setAdapter(adapter);
}
}
运行效果如下
扩展学习
如果你觉得系统提供的下拉列表框的样式不是你想要的,你可以在layout目录下创建一个newstyle.xml来布局AutoCompleteTextView控件的下拉列表框的样式,把这句代码的第二个参数改为ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.newstyle, strAutoArray);