前言:

  在Android开发中EditText的使用频率还是挺高的,比如登录界面输入密码验证码等,有的时候要求我们要在输入号码后显示是哪家公司的,比如中国移动,中国联通,这是就会用到EditText监听器

正文:

  在xml文件中:

  1. <EditText
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:hint="输入号码"
  5. android:id="@+id/input1"/>

在Java文件中

使用addTextChangedListener方法和匿名内部类TextWatcher来添加EditText监听器,在这个监听器中我们要重写三个方法分别为

  1. public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
  2. public void onTextChanged(CharSequence s, int start, int before, int count) {}
  3. public void afterTextChanged(Editable s) {}
  1. beforeTextChanged方法中
  1. s:改变之前的文本
    start:改变之前的文本数
    count:被改变原有内容的数量
    after:表示改变后新的内容的数量
  1. onTextChanged方法中
  1. s:为改变了的文本,如本来是12,我在输入3,此时s123
    count:表示新增的数量
    before:被改变的数量
    start:表示输入之前的数量
  1. afterTextChanged方法中
  1. s:为输入之后的文本
  1. import android.support.v7.app.AppCompatActivity;
  2. import android.os.Bundle;
  3. import android.text.Editable;
  4. import android.text.TextWatcher;
  5. import android.text.method.HideReturnsTransformationMethod;
  6. import android.text.method.PasswordTransformationMethod;
  7. import android.util.Log;
  8. import android.widget.CheckBox;
  9. import android.widget.CompoundButton;
  10. import android.widget.EditText;
  11. import android.widget.RadioButton;
  12. import android.widget.RadioGroup;
  13. import android.widget.Toast;
  14.  
  15. public class MainActivity extends AppCompatActivity {
  16. private CheckBox checkbox;
  17. private EditText edittext;
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_main);
  22. checkbox=(CheckBox)findViewById(R.id.checkbox);
  23. edittext=(EditText)findViewById(R.id.input1);
  24. edittext.addTextChangedListener(new TextWatcher() {
  25. @Override
  26. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  27.  
  28. }
  29.  
  30. @Override
  31. public void onTextChanged(CharSequence s, int start, int before, int count) {
  32.  
  33. }
  34.  
  35. @Override
  36. public void afterTextChanged(Editable s) {
  37. if (edittext.getText().length() == 11) {
  38. Toast.makeText(MainActivity.this, "中国移动", Toast.LENGTH_LONG).show();
  39. }
  40.  
  41. }
  42. });
  43.  
  44. }
  45. }

上面代码是当输入11个数字时,提示中国移动

EditText监听器------实时监听的更多相关文章

  1. Echarts图标宽度变成100px,让图表宽度随着父元素自动适应,Vue实时监听宽度的变化,这可能是史上最好的解决方案!

    最近工作中element后台管理使用Echarts图表,本后台项目分图表模式和列表模式,使用display控制显示隐藏,这样就引出了本文的问题. 问题1:Echarts图标宽度变成100px? 问题2 ...

  2. js 实时监听input中值变化

    注意:用到了jquery需要引入jquery.min.js. 需求: 1.每个地方需要分别打分,总分为100; 2.第一个打分总分为40; 3.第二个打分总分为60. 注意:需要判断null.&quo ...

  3. 移动端用js与jquery实时监听输入框值的改动

    背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android ...

  4. javascript --- 实时监听输入框值的变化

    实时监听文本框值变化是非常常见的功能,通常最简单的办法就是用keyup,keydown来实现,但是这种方法有两个问题,一个是当直接复制粘贴的时候没法监听到事件,另外一个问题是在移动端,使用删除键删除输 ...

  5. 实时监听输入框值变化的完美方案:oninput & onpropertychange

    实时监听输入框值变化的完美方案:oninput & onpropertychange: 网址:http://www.cnblogs.com/lhb25/archive/2012/11/30/o ...

  6. input实时监听(input oninput propertychange onpropertychange)

    本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法.分享给大家供大家参考.具体如下: 最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时 ...

  7. Android EditText截获与监听输入事件

      Android EditText截获与监听输入事件共有2种方法: 1.第一种方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件. edittext.setOnKeyLi ...

  8. js与jquery实时监听输入框值变化方法

    本文实例讲述了js与jquery实时监听输入框值的oninput与onpropertychange方法.分享给大家供大家参考.具体如下: 最近做过一个项目,需求是下拉框里自动匹配关键字,具体细节是实时 ...

  9. Android实时监听网络状态

    Android实时监听网络状态(1)   其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就 ...

随机推荐

  1. [运维] 如何在 Linux 上安装 Nginx 服务器(一)

    原因 因为小程序对素材的大小是由要求的, 所以为了简化小程序上的内存要求, 在Linux上安装nginx来作为静态资源服务器, 这篇为第一篇, 主要介绍怎么在Linux上安装nginx, 下一篇将会介 ...

  2. electron-edge-js 环境搭建

    确保nodejs环境 为 10.X  (因为edge的编译需要node对应版本的支持,太新的node不包含对应edge的编译) 1.创建工程2.使用npm init初始化程序信息3.使用npm ins ...

  3. PHP pclzip.php 解压中文乱码

    修改 pclzip中方法privExtractFile 代码 if ($p_path != '') { $p_entry['filename'] = $p_path."/".$p_ ...

  4. 面试题之第一部分(Python基础篇) 80题

    第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...

  5. 白底黑字!Android浅色状态栏黑色字体模式(另)

    小彬什么都想做任重致远 关注 2016.06.30 10:16* 字数 489 阅读 3234评论 3喜欢 12 前言 由于该死不死的设计湿,设计了一套白色状态栏的UI.当然在iOS上可以实现自适应, ...

  6. 模板+解题报告:luogu P3385 【模板】负环

    题目链接:P3385 [模板]负环 缩点板子. 看日报上说\(DFS\)会炸(我确实打炸了),就根据他的说明\(yy\)了\(BFS\),多一个记录步数的数组即可(我用的\(len[]\)),若\(l ...

  7. 模板语法(DOM与Vue数据绑定)

    Vue.js使用了基于HTML的模板语法,允许开发者声明式的将DOM绑定至底层Vue实例的数据. 插值 文本:{{ }}数据绑定最常见的形式就是使用Mustache语法(双大括号)的文本插值,解释为普 ...

  8. Mybatis入门(五)属性名和字段名不一致解决

    在学Mybatis的时候都需要创建一个实体类,但创建实体类的变量必须和数据库的一样,这章就来解决这个有趣的问题 目录: 问题是这样: 输出的结果是: password为空,这就很难受: 解决方法: 第 ...

  9. Metasploit学习笔记——强大的Meterpreter

    1. Meterpreter命令详解 1.1基本命令 使用Adobe阅读器渗透攻击实战案例打开的Meterpreter会话实验,靶机是WinXP.由于所有命令与书中显示一致,截图将书中命令记录下来. ...

  10. pgsql数据库 pg_hba.conf 中 METHOD 的说明

    pg_hba.conf 文件是pgsql用于配置访问权限的配置文件,  内容如下: ##############begin#################### #   TYPE    DATABA ...