天天看点

AutoTextView控件的使用(Android设置输入提示)

大家在访问浏览器的时候,要搜索的东西只输入一半不到的时候,系统会给很多提示。如下:

AutoTextView控件的使用(Android设置输入提示)

这个就是靠AutoTextView实现的。它会自动检索你所有的数据中满足条件的并进行提示。

具体怎么操作呢?我们举个简单的例子。

首先,先简单的创建个垂直线性布局,把AutoTextView放进去。代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Country: "/>
     
    <AutoCompleteTextView
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:dropDownHeight="200dip"
        android:id="@+id/edit"/>

    <Button
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="确定"
        android:id="@+id/ok"/>

</LinearLayout>
           

接下来是重点了,我们怎么能使他提示内容呢?

我们要有一个数据源,这里面有很多数据,而根据你的输入,提供你可能想要的。如何把数据源的数据显示到页面?这个需要用到适配器。当然我们可以设置最小提示字符的数量,可以设置下拉框的长度。代码如下:

package cn.edu.qtech.csc.lcb.autotextviewdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    //这里用一个字符串数组来当数据匹配源
    static final String[] COUNTRIES = new String[] {
            "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
            "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
            "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
            "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
            "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
            "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
            "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
            "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
            "Cayman Islands", "Central African Republic", "Chad", "Chile",
            "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
            "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
            "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
            "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
            "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
            "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
            "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
            "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
            "Guyana", "Haiti", "Heard Island and McDonald Islands"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //找到AutoCompleteTextView控件
        final AutoCompleteTextView autoTextView = (AutoCompleteTextView) findViewById(R.id.edit);
        ArrayAdapter adapter = new ArrayAdapter(this, //定义匹配源的adapter
                android.R.layout.simple_dropdown_item_1line, COUNTRIES);
        autoTextView.setThreshold(2); //设置最小提示字符数量为2
        autoTextView.setAdapter(adapter); //为AutoCompleteTextView控件设置适配器
        autoTextView.setDropDownHeight(800); //设置下拉框的高度

        //显示选择结果
        ((Button)findViewById(R.id.ok)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, autoTextView.getText().toString(), Toast.LENGTH_LONG).show();
            }
        });

    }
}
           

测试结果如下:

AutoTextView控件的使用(Android设置输入提示)

源码地址(对不起各位大佬,这个资源的名字写错了,不过内容是对的):https://download.csdn.net/download/qq_38367681/10777909

继续阅读