多个editText监听事件

今天做项目,一个界面中有多个editText,由于实现的逻辑基本相同,所有如果为每一个editText都写一个监听,会显得比较麻烦,

于是,就把editText的监听事件写到一个类里面,通过构造方法,把需要操作的editText传进来

代码如下:

/**
 * 重构editText监听事件
 */
public class MyTextWatcher implements TextWatcher {

    private EditText editText;

    public MyTextWatcher(EditText editText) {
        this.editText = editText;
    }

    /**
     * 文本输入改变之前调用(还未改变)
     */
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    /**
     * 文本改变过程中调用(文本替换动作)
     */
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        String onlineRate = String.valueOf(s);
        if (!onlineRate.equals("")) {
            Integer onlineRates = Integer.parseInt(onlineRate);
            if (100 < onlineRates) {
                editText.setText("100");
                //将editText的光标移动到文本最后位置
                editText.setSelection(editText.getText().length());
            }

        }
    }

    /**
     * 文本改标之后调用(文本已经替换完成)
     */
    @Override
    public void afterTextChanged(Editable s) {

    }
}

这样就已经完成了,接下来就是调用了,把你的editText传进去就可以了

editText.addTextChangedListener(new MyTextWatcher(editText));




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值