zoukankan      html  css  js  c++  java
  • 监听EditText变化---TextWatcher 类用法详解

    http://www.cnblogs.com/yjing0508/p/5316985.html

    TextWatcher textWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    //s--未改变之前的内容
    //start--内容被改变的开始位置
    //count--原始文字被删除的个数
    //after--新添加的内容的个数
    //---------start和count结合从s中获取被删除的内容-------
    String deleText = s.toString().substring(start, start + count);
    }
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    //s--改变之后的新内容
    //start--内容被改变的开始位置
    //before--原始文字被删除的个数
    //count--新添加的内容的个数
    //---------start和count结合从s中获取新添加的内容-------
    String addText = s.toString().substring(start, start + count);
    }
    @Override
    public void afterTextChanged(Editable s) {
    //s--最终内容
    }
    };
    edit_content.addTextChangedListener(textWatcher);

    参数CharSequence s的类型是SpannableStringBuilder,不要发生类型转换异常这样的错误
    在SpannableStringBuilder类中,TextWatcher的3个方法是这样被回调(下图),其中
    s位置传入的内容是this(即SpannableStringBuilder类的当前实例)。
    说明:TextWatcher 的3个方法中s参数指向的是同一片内存区域
     

    SpannableStringBuilder部分源码如下:

     
    在SpannableStringBuilder类中的replace()方法中有对以上3个方法的调用
  • 相关阅读:
    [windbg] 进程、线程
    [Windows 驱动开发] 驱动中获取函数地址
    [DuiLib] 入坑资料收集
    [Windows 驱动开发] 获取驱动详细信息
    基于模板的SPS展示层定制
    关于工作角色的一个新的思考
    中小企业IT建设的有关思路
    定制SharePoint Portal之去除帮助链接
    大客户谈判技巧关于IT行业售前工作
    细节决定成败
  • 原文地址:https://www.cnblogs.com/shixm/p/5742555.html
Copyright © 2011-2022 走看看