文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android AutoCompleteTextView控件使用实例

2022-06-06 10:25

关注

使用要点如下:

1.利用ListAdapter(一般使用ArrayAdapter)为AutoCompleteTextView提供数据,若有需要还可以重载getView()以自定义列表项的显示方式。这一步同ListView。
2.如果需要根据输入内容进行动态提示,那么adapter需要实现Filterable接口,重载getFilter()函数实现提示算法。getFilter()需返回Filter对象,该对象包含至少两个方法:performFiltering()在后台执行过滤,publishResults()在UI线程执行,负责将过滤结果显示到列表中。还有第三个方法convertResultToString()可以控制用户点击提示时要填充至输入框的文本内容。
示例代码如下:
代码如下:
AutoCompleteTextView autoComplete = new AutoCompleteTextView(context);
autoComplete.setThreshold(2);      // 设置最少几个字符触发自动完成
MyAdapter adapter = new MyAdapter(context);
autoComplete.setAdapter(adapter);


class MyAdapter extends ArrayAdapter<MyObject> implements Filterable{

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // define your list item view here 在此处定义列表项的视图
    }

   
    @Override
    public Filter getFilter() {
        Filter filter = new Filter() {

           
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {
                String keyword = String.valueOf(constraint).toLowerCase();
                // 此处实现过滤

                // 过滤后利用FilterResults将过滤结果返回
                FilterResults filterResults = new FilterResults();
                filterResults.values = results;   // results是上面的过滤结果
                filterResults.count = results.size();  // 结果数量

                return filterResults;
            }

           
            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {
                if (results != null && results.count > 0) {
                    // 有过滤结果,显示自动完成列表
                    MyAdapter.this.clear();   // 清空旧列表
                    MyAdapter.this.addAll((List<MyObject>)results.values);
                    notifiDataSetChanged();
                } else {
                    // 无过滤结果,关闭列表
                    notifyDataSetInvalidated();
                }
            }

           
            @Override
            public CharSequence convertResultToString(Object resultValue) {
                MyObject obj = (MyObject) resultValue;
                return obj.name;
            }

        };
    }
}

您可能感兴趣的文章:Android高级组件AutoCompleteTextView自动完成文本框使用详解Android中EditText和AutoCompleteTextView设置文字选中颜色方法基于Android中的 AutoCompleteTextView实现自动填充实例讲解Android中的AutoCompleteTextView自动补全组件Android AutoCompleteTextView连接数据库自动提示的方法(附demo源码下载)Android仿百度谷歌搜索自动提示框AutoCompleteTextView简单应用示例Android自动编辑文本框(AutoCompleteTextView)使用方法详解Android中AutoCompleteTextView自动提示android中AutoCompleteTextView的简单用法(实现搜索历史)Android AutoCompleteTextView控件基本用法示例Android开发高级组件之自动完成文本框(AutoCompleteTextView)用法示例【附源码下载】


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯