Android studio App开发 自动完成文本框AutoCompleteTextView,输入时自动检索相似结果

本文详细介绍Android中的AutoCompleteTextView组件,包括其基本用法、关键属性及如何通过ArrayAdapter与数据源关联,实现自动补全功能。

自动完成文本框AutoCompleteTextView

自动完成文本框,用于实现允许用户输入一定字符后,显示一个下拉列表,供用户从中选择,当用户选择某个选项后,按用户选择自动填写该文本框。

AutoCompleteTextView是EditText的子类,所以可以使用所有editText的属性,同时有以下特有的属性:

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

实例介绍

步骤一 在XML文件中添加一个AutoCompleteTextView

在布局管理器中添加一个自动完成文本框和一个按钮。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="6dp">

    <AutoCompleteTextView
        android:id="@+id/auyoCompleteTextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:text=""
        android:completionThreshold="2"
        android:completionHint="输入搜索内容"
        android:layout_weight="9"/>

    <Button
        android:id="@+id/but1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="确定"
        android:layout_marginLeft="10dp"/>

</LinearLayout>

效果

步骤二 创建一个数组来存储要检索的信息

我们需要创建一个数组,在自动完成框中输入关键字时,会自动在这个数组中匹配相应的内容。 这个数组可以用ArrayList实现,也可以用数据库实现。

private static final String[] COUNTRIES = new String[]{
            "love","lost","abcd","abcde","abcdef","abcdefg","abcdefghi"
    };
步骤三 用ArrayAdapter适配器与自动完成框关联

需要获取自动完成文本框的id,创建一个保存下拉列表中要显示的列表项ArrayAdapter适配器, 最后讲该适配器与自动完成文本框相关联。
代码如下:

final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.auyoCompleteTextView1);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line,COUNTRIES);
        textView.setAdapter(adapter);

        Button button = (Button) findViewById(R.id.but1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(AutoCompleteTextViewActivity.this,textView.getText().toString(),Toast.LENGTH_SHORT).show();
            }
        });

运行结果如图:
效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值