EditText 监听-----TextWatcher

TextWatcher fieldValidatorTextWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {//表示最终内容
Log.d(“afterTextChanged”, s.toString());
}

        @Override
        public void before TextChanged(
        CharSequence s, int start/*开始的位置*/, int count/*被改变的旧内容数*/, int after/*改变后的内容数量*/) 
        {
        **//这里的s表示改变之前的内容,通常start和count组合,可以在s中读取本次改变字段中被改变的内容。
        而after表示改变后新的内容的数量。
             //s----未改变之前的内容
             //start--内容被改变的开始位置
              //count--原始文字被删除的个数
              //after--新添加的内容的个数
              //---------start和count结合从s中获取被删除的内容-------**
              String deleText = s.toString().substring(start, start + count);
        }


        @Override
        public void onTextChanged(
       {
         **//这里的s表示改变之后的内容,通常start和count组合,可以在s中读取本次改变字段中新的内容。
         而before表示被改变的内容的数量。
            //s--改变之后的新内容
           //start--内容被改变的开始位置
            //before--原始文字被删除的个数
             //count--新添加的内容的个数
             //---------start和count结合从s中获取新添加的内容-------**
             String addText = s.toString().substring(start, start + count);
        }
    };

实例:recyclerview

@Override
public void onBindViewHolder(final MyViewHolder holder,final int position) {
    //添加editText的监听事件
    holder.name.addTextChangedListener(new TextSwitcher(holder));
    //通过设置tag,防止position紊乱
    holder.name.setTag(position);
}

//自定义EditText的监听类
class TextSwitcher implements TextWatcher {
    private MyViewHolder mHolder;
    public TextSwitcher(MyViewHolder mHolder) {
        this.mHolder = mHolder;
    }
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        //改变之前
    }
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        //文本改变
    }
    @Override
    public void afterTextChanged(Editable s) {
        //用户输入完毕后,处理输入数据,回调给主界面处理
         SaveEditListener listener= (SaveEditListener) mContext;
         //mContext这里必须是activity不能是  getApplicationContext
        if(s!=null){
            listener.SaveEdit(Integer.parseInt(mHolder.c_name_et.getTag().toString()),s.toString());
        }

    }
}

Demo下载

新手上路,请多多包涵!谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值