美文网首页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