美文网首页Android应用开发那些事
安卓控件之AutoCompleteTextView——自动完成文

安卓控件之AutoCompleteTextView——自动完成文

作者: 笑对浮华 | 来源:发表于2019-12-16 18:12 被阅读0次

    今天在逛博客的时候发现一个比较实用的控件,就是AutoCompleteTextView,从命名上看叫自动完成文本框,光看名字估计不知道它能实现什么功能,当我看完介绍后脑海里一下就想到了项目中做搜索筛选的时候,用这个控件简直不要太好用,下面就通过一个demo来学习一下:
    首先先来看一下实现的效果:


    AutoCompleteTextView

    通过上图可以直观的看出AutoCompleteTextView的效果就是,根据你输入的字符提示相关的内容,这个功能在搜索筛选的时候很实用吧。下面看看代码实现:

    <AutoCompleteTextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/auto_complete_text_view"
            android:completionThreshold="1"/>
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            AutoCompleteTextView autoCompleteTextView = findViewById(R.id.auto_complete_text_view);
            //设置数据
            List<String> datas = new ArrayList<>();
            datas.add("语文");
            datas.add("数学");
            datas.add("外语");
            datas.add("物理");
            datas.add("化学");
            datas.add("生物");
            //创建适配器
            ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_dropdown_item_1line,datas);
            //绑定适配器
            autoCompleteTextView.setAdapter(adapter);
        }
    }
    

    布局和代码都非常的简单,这里需要说明两个地方:

    一:在布局中需要加上android:completionThreshold="1"这句代码,设置输入一个字就提示,如果不写这句代码是不会提示你的。

    二:在代码中创建适配器的时候传入的第二个参数,是一个TextView而不是一个布局,否则会报这个错误java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView,这里也可以直接传这个android.R.layout.simple_dropdown_item_1line默认的。

    好了,以上就是对AutoCompleteTextView的学习,加入到项目中非常的实用。
    对了,最后附上我学习到这个控件的地址https://www.runoob.com/w3cnote/android-tutorial-autocompletetextview.html

    相关文章

      网友评论

        本文标题:安卓控件之AutoCompleteTextView——自动完成文

        本文链接:https://www.haomeiwen.com/subject/ippdnctx.html