AutoCompleteTextView 和 TextWatcher 详解

简介: TextWatcher 监测Edittext内容的变化------------------------------------------------------------------------------------------------      edittext.

TextWatcher 监测Edittext内容的变化------------------------------------------------------------------------------------------------

    

edittext.addTextChangedListener(new TextWatcher() {

      @Override
      public void afterTextChanged(Editable s) {
        int count = 140 - s.length();
        textRemain.setText("Remains " + count + " Letters~");
      }

      @Override
      public void beforeTextChanged(CharSequence s, int start, int count,
                                    int after) {}
        
  1.           // s:之前的文字内容  
  2.           // start:添加文字的位置(从0开始)  
  3.           // count:不知道 一直是0  
  4.           // after:添加的文字总数 


      @Override
      public void onTextChanged(CharSequence s, int start, int before,
                                int count) {}
    });

AutoCompleteTextView是实现动态匹配输入内容的一种输入框(EditText)

如输入“and”时,会提示“android”

  

 AutoCompleteTextView autoinput =(AutoCompleteTextView) findViewById(R.id.autoinput);  
  
        autoinput.setThreshold(1);// 输入一个字母就开始自动提示  
  
  
    autoinput.addTextChangedListener(new TextWatcher() {  
          
        @Override  
        public void onTextChanged(CharSequence s, int start, int before, int count) {  
            // TODO Auto-generated method stub  
            //s是输入框正在输的字符串,随着不断的输入,s的值也会不停地改变  
  
                 
                 String str = s.toString();  
                 
                String[] temp = getInputAdapter(getInputWorldOrder(str));  
                  //此处代码省略,自己通过查询数据库或者其他方法,动态地获取相应的字符串数组  
                 //如做一个字典时,不可能预先把所有单词做成一个adapter,应该根据输入的字符,  
                //动态地查询一定数量的相对应的单词,然后再构建adapter  
                 ArrayAdapter<String> adapter = new ArrayAdapter<String>(ct,  
                 android.R.layout.simple_dropdown_item_1line, temp);  
  
       
                 autoinput.setAdapter(adapter)  
  
                 //正在输入时,构建adapter,然后把adapter绑定在AutoCompleteTextView 上面  
  
        @Override  
        public void beforeTextChanged(CharSequence s, int start, int count,  
                int after) {  
            // TODO Auto-generated method stub  
  
        }  
  
        @Override  
        public void afterTextChanged(Editable s) {  
            // TODO Auto-generated method stub  
  
        }  
  
    }  
    }  

  

目录
相关文章
|
算法 安全 网络安全
简单认识一下mbedTLS
简单认识一下mbedTLS
1490 0
|
5月前
|
Java 开发者
Java 中的 toString() 方法详解:为什么它如此重要?
在Java开发中,`toString()`方法至关重要,用于返回对象的字符串表示。默认实现仅输出类名和哈希码,信息有限且不直观。通过重写`toString()`,可展示对象字段值,提升调试效率与代码可读性。借助Lombok的`@Data`注解,能自动生成标准化的`toString()`方法,简化开发流程,尤其适合字段较多的场景。合理运用`toString()`,可显著提高开发效率与代码质量。
352 0
|
11月前
|
机器学习/深度学习 数据可视化 JavaScript
|
数据采集 存储 编译器
优化计算效率
【7月更文挑战第26天】优化计算效率
295 8
|
前端开发 JavaScript
Elementplus如何使面包屑往左边移动,右边头像下拉菜单如何写,下拉菜单如何靠中一点,下拉菜单出现文字不对齐怎么办,如何设置鼠标样式,如何使用阿里妈妈icon,如何点击icon全屏
Elementplus如何使面包屑往左边移动,右边头像下拉菜单如何写,下拉菜单如何靠中一点,下拉菜单出现文字不对齐怎么办,如何设置鼠标样式,如何使用阿里妈妈icon,如何点击icon全屏
Elementplus如何使面包屑往左边移动,右边头像下拉菜单如何写,下拉菜单如何靠中一点,下拉菜单出现文字不对齐怎么办,如何设置鼠标样式,如何使用阿里妈妈icon,如何点击icon全屏
|
机器学习/深度学习 人工智能 自然语言处理
LLM性能最高60%提升!谷歌ICLR 2024力作:让大语言模型学会“图的语言”
【5月更文挑战第1天】谷歌在ICLR 2024提出新方法,使大语言模型(LLM)性能提升高达60%,通过结合图神经网络(GNN),LLM学会理解与生成“图的语言”,打破处理复杂任务的局限。此创新模型适用于社交网络分析等领域,但面临计算资源需求大和模型解释性问题。研究强调需确保LLM在道德和法律框架内使用。论文链接:https://openreview.net/pdf?id=IuXR1CCrSi
442 3
|
人工智能 安全 数据安全/隐私保护
【AI 生成式】生成式人工智能存在哪些伦理问题?
【5月更文挑战第4天】【AI 生成式】生成式人工智能存在哪些伦理问题?
【AI 生成式】生成式人工智能存在哪些伦理问题?
|
API 数据安全/隐私保护 开发者
使用Python调用API接口获取淘宝商品数据
要使用Python调用淘宝的API接口获取商品数据,你可以使用淘宝开放平台提供的API接口。下面是一个简单的示例代码,演示如何使用Python调用淘宝API接口获取商品数据。
|
JSON API Go
使用 DeepFlow Wasm 插件实现业务可观测性
自定义过滤:对调用日志进行基于 URL、Endpoint 等字段的过滤
828 0
|
前端开发 应用服务中间件 nginx
Nginx 设置跨域访问
什么是跨域访问,当我们通过浏览器访问a网站时,同事会利用到ajax或其他方式,同时也请求b网站,这样的话就出现了请求一个页面,使用了两个域名,这种方式对浏览器来说默认是禁止的。
Nginx 设置跨域访问