全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android中AutoCompleteTextView自动提示

我们使用控件AutoCompleteTextView 自动提示时,有时需要设置BaseAdapter,设置BaseAdapter时,需要实现Filterable,手动进行筛选。

常用属性

布局只设置了至少输入一个字符显示提示

<AutoCompleteTextView
    android:id="@+id/at"
    android:completionThreshold="1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

 private List<String> allData = new ArrayList<>();

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    allData.add("aa");
    allData.add("bb");
    allData.add("cc");
    allData.add("dd");
    allData.add("abc");
    allData.add("bcd");
    AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.at);
    MyAdapter adapter = new MyAdapter();
    textView.setAdapter(adapter);
  }

adapter适配器代码

 class MyAdapter extends BaseAdapter implements Filterable {
    DataFilter filter;
    ArrayList<String> data;

    @Override
    public int getCount() {
      if (data != null && data.size() > 0) {
        return data.size();
      }
      return 0;
    }

    @Override
    public Object getItem(int i) {
      return null;
    }

    @Override
    public long getItemId(int i) {
      return 0;
    }

    @Override
    public View getView(int position, View view, ViewGroup viewGroup) {
      TextView textView = new TextView(MainActivity.this);
      textView.setText(data.get(position));
      return textView;
    }

    @Override
    public Filter getFilter() {
      if (filter == null) {
        filter = new DataFilter();
      }
      return filter;
    }

    private class DataFilter extends Filter {

      @Override
      protected FilterResults performFiltering(CharSequence prefix) {
        //查询结果保存到FilterResults对象里
        FilterResults results = new FilterResults();
        List<String> queryData = new ArrayList<>();
        for (int i = 0; i < allData.size(); i++) {
          if (allData.get(i).contains(prefix.toString())) {
            queryData.add(allData.get(i));
          }
        }
        results.values = queryData;
        results.count = queryData.size();
        return results;
      }

      /**
       * 更新UI
       */
      @Override
      protected void publishResults(CharSequence constraint, FilterResults results) {

        List<String> queryData = (List<String>) results.values;
        if (data == null) {
          data = new ArrayList<>();
        }
        if (data.size() > 0) {
          data.clear();
        }

        if (queryData != null && queryData.size() > 0)
          for (String string : queryData) {
            data.add(string);
            notifyDataSetChanged();
          }
      }

    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # AutoCompleteTextView  # 自动提示  # Android用户输入自动提示控件AutoCompleteTextView使用方法  # Android自动获取输入短信验证码库AutoVerifyCode详解  # Android AutoWrapTextView中英文排版问题的解决方法  # Android中使用 AutoCompleteTextView 实现手机号格式化附带清空历史的操作  # Android自动编辑文本框(AutoCompleteTextView)使用方法详解  # Android仿新浪微博oauth2.0授权界面实现代码(2)  # android中AutoCompleteTextView的简单用法(实现搜索历史)  # Android仿百度谷歌搜索自动提示框AutoCompleteTextView简单应用示例  # 关于Android HTML5 audio autoplay无效问题的解决方案  # Android AutoCompleteTextView自动提示文本框实例代码  # Android App开发的自动化测试框架UI Automator使用教程  # Android中AutoCompleteTextView与TextWatcher结合小实例  # Android AutoValue使用和扩展库  # 查询结果  # 大家多多  # void  # protected  # onCreate  # savedInstanceState  # Bundle  # Override  # List  # private  # String  # ArrayList  # allData  # super  # cc  # bb  # dd  # bcd  # abc  # aa 


相关文章: 如何在阿里云虚拟服务器快速搭建网站?  SQL查询语句优化的实用方法总结  c# 服务器GC和工作站GC的区别和设置  如何通过wdcp面板快速创建网站?  广平建站公司哪家专业可靠?如何选择?  建站与域名管理如何高效结合?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何通过云梦建站系统实现SEO快速优化?  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何在七牛云存储上搭建网站并设置自定义域名?  如何安全更换建站之星模板并保留数据?  湖北网站制作公司有哪些,湖北清能集团官网?  如何选择高性价比服务器搭建个人网站?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  ,怎么在广州志愿者网站注册?  c# 在ASP.NET Core中管理和取消后台任务  建站之星ASP如何实现CMS高效搭建与安全管理?  如何通过可视化优化提升建站效果?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  宝塔Windows建站如何避免显示默认IIS页面?  C#如何在一个XML文件中查找并替换文本内容  视频网站app制作软件,有什么好的视频聊天网站或者软件?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  攀枝花网站建设,攀枝花营业执照网上怎么年审?  音乐网站服务器如何优化API响应速度?  如何通过虚拟主机快速完成网站搭建?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何快速重置建站主机并恢复默认配置?  如何选择域名并搭建高效网站?  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何选择美橙互联多站合一建站方案?  如何配置IIS站点权限与局域网访问?  网站制作企业,网站的banner和导航栏是指什么?  制作公司内部网站有哪些,内网如何建网站?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  动图在线制作网站有哪些,滑动动图图集怎么做?  高性价比服务器租赁——企业级配置与24小时运维服务  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  如何快速上传建站程序避免常见错误?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  淘宝制作网站有哪些,淘宝网官网主页?  如何通过VPS建站实现广告与增值服务盈利?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  建站主机选择指南:服务器配置与SEO优化实战技巧  黑客如何利用漏洞与弱口令入侵网站服务器? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。