Android练习-----自动完成文本框(AutoCompleteTextView)(搜索框)

来源:互联网 发布:gta5妹子捏脸数据 编辑:程序博客网 时间:2024/04/29 23:52

自动完成文本框控件 (AutoCompleteTextView) 用于实现输入一定的字符后,显示出一个以输入字符开头的下拉菜单供用户选择。当用户选择某项后,该控件中的字符为当前用户所选项

在屏幕中添加自动完成文本框,可以通过在 XML 布局文件中添加 < AutoCompleteTextView > 标记来实现,基本语法格式如下:

<AutoCompleteTextView         android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@+id/autoComplete"        />

AutoCompleteTextView 控件继承自 EditText 控件,因此它支持 EditText 控件所提供的属性,同时该控件支持的 XML 属性如下所示:

属性名称 描述 android:completionHint 用于为弹出的下拉菜单指定提示标题 android:completionThreshold 用于指定用户至少输入几个字符才会显示下拉菜单 android:dropDownHeight 用于指定下拉菜单高度 android:dropDownHorizontalOffset 用于指定下拉菜单与文本之间的水平偏移。下拉菜单默认与文本框左对齐 android:dropDownVerticalOffset 用于指定下拉菜单与文本之间的垂直偏移。下拉菜单默认紧跟文本框 android:dropDownWidth 用于指定下拉菜单的宽度

在Eclipse中创建一个 Android 项目,名称为 TestAutoCompleteTextView ,使用 AutoCompleteTextView 控件完成搜索时的自动匹配。

(1)在项目的 res/layout 目录下修改 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="horizontal">    <AutoCompleteTextView         android:layout_width="235dp"        android:layout_height="wrap_content"        android:id="@+id/autoComplete"        android:completionThreshold="2"        android:layout_margin="5dp"        android:completionHint="请输入您要搜索的内容"        android:singleLine="true"        android:dropDownWidth=""/>    <Button         android:id="@+id/button"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="搜索"        android:layout_margin="5dp"        /></LinearLayout>

上述代码中,android:completionHint 用于为弹出的下拉菜单指定提示标题; android:completionThreshold 用于指定用户至少输入几个字符才会显示下拉菜单,这里设置的值是2,表示输入两个或以上字符时,就会显示提示的下拉菜单; android:singleLine 表示是否单行显示文本,这里的值为 true,表示单行显示文本


(2)在MainActivity.java文件中,定义一个字符串数组常量,用于保存要在下拉菜单中显示的列表内容。在获取到自动完成文本框控件后,为其添加适配器,在获取到搜索按钮后,为其添加监听器,代码如下:

import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.ArrayAdapter;import android.widget.AutoCompleteTextView;import android.widget.Button;import android.app.Activity;public class MainActivity extends Activity {    private AutoCompleteTextView autoComplete = null;    private Button button;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //找到关心的控件        autoComplete  = (AutoCompleteTextView) findViewById(R.id.autoComplete);        button = (Button) findViewById(R.id.button);        final String[] COUNTRIES = {"Afghanistan","Albania","Algeria","America","Samoa",                "Andorra","Cayman Islands","Central African Republic","Chad","Chile","China"};        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES);        autoComplete.setAdapter(adapter);        button.setOnClickListener(new buttonOnClickListener());    }        class buttonOnClickListener implements OnClickListener{            public void onClick(View v) {                Log.i("您要搜索的是:", autoComplete.getText().toString());            }        }}

上述代码中,final String[] COUNTRIES 定义的字符串数组常量用于下拉菜单中显示的列表内容。创建ArrayAdapter 适配器用于保存下拉菜单中要显示的列表项,最后使用 setAdapter() 方法将该适配器与自动完成文本框相关联。在搜索按钮监听器中的 OnClick() 方法中,通过 Log.i() 方法将所选择的内容显示在日志控制台中。


运行该项目
这里写图片描述

在编辑框输入内容后
这里写图片描述

选中某一项后,单击搜索按钮,控制台显示显示如图所示
这里写图片描述

0 0
原创粉丝点击