AutoCompleteTextView控件功能讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZHW1551706847/article/details/78032104

最近有一个项目需求,要求在EditText中输入文字进行搜索的时候,下方会出现一个下拉列表那样提示,根据你输入的内容,列表中会列出可以找到的内容供你选择,这个功能我之前没有做过,想了好久,最开始以为是个ListView,但不知怎么实现,后来想到了PopupWindow,但有点麻烦,还有后来学习PopupMenu的时候学到了ListPopupWindow,但是ListPopupWindow的列表项内容是写死了的,不能根据我每次搜索的结果自动添加进列表中在我下次搜索的时候显示出来,结果在学习ListPopupWindow的时候接触到了AutoCompleteTextView控件,天呐,它居然还是个控件啊,我怎么从来没有听过啊,看来我学习的实在是太少了啊,惭愧,现在开始学习吧。
先纠正一点,这里没有EditText,只要AutoCompleteTextView就可以咯,所以,在你原本想打算布局一个EditText控件的布局文件中布局一个AutoCompleteTextView控件,如下:

<AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/autotext"
        />

然后在Activity中

public class MainActivity extends Activity {
private AutoCompleteTextView autotext;
private ArrayAdapter<String> arrayAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        autotext =(AutoCompleteTextView) findViewById(R.id.autotext);
         List<String> list=new ArrayList<String>();
        list.add("aa");
        list.add("abc");
        list.add("abcd");
        arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);
        autotext.setAdapter(arrayAdapter);
    }
}

然后就可以了,哈哈,简单吧,可见在集合中可以先放一些可以匹配的,然后在每次搜索后将这个值放进集合,然后刷新下adapter即可
但是,这个列表会越来越长,我们平时浏览器搜索框中也有这个功能,但是我们是可以一条一条去搜索记录的,也可以一键全部删除的,这个怎么办?其实很简单,那就不要使用ArrayAdapter呗,改用BaseAdapter,然后自己去自定义listView中的内容,在listView的最后一行可以加一个清楚全部,应该是可以的,没有尝试过,一般这种浏览器中需要经常大量搜索才需要这么做,平时我们很少使用搜索的话就可以不用这么做,反正列表中显示的内容就没有几个,而且还可以上下滑动查看的。

AutoCompleteTextView常用属性
android:completionHint 设置出现在下拉菜单中的提示标题
android:completionThreshold 设置用户至少输入多少个字符才会显示提示
android:dropDownHorizontalOffset 下拉菜单于文本框之间的水平偏移。默认与文本框左对齐
android:dropDownHeight 下拉菜单的高度
android:dropDownWidth 下拉菜单的宽度
android:singleLine 单行显示
android:dropDownVerticalOffset 垂直偏移量
刚才我的例子中需要输入两个才会有显示,其实只要设置setThreshold(1);就可以输入一个就显示出来咯

相关的文章:文章1 文章2 文章3

猜你喜欢

转载自blog.csdn.net/ZHW1551706847/article/details/78032104