替换TextWatchers的重复代码

时间:2016-10-19 12:06:54

标签: java android

我有一个包含EditTexts的注册屏幕,每个屏幕都有一个TextWatcher,因此我可以“收听”更改并显示或隐藏错误。

例如:

 etFirstName.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {
            if (etFirstName.getText().length() > 0) {
                hideFirstNameError();
            }
        }
    });

问题是代码太过膨胀,我的editTexts的每一个都反复重复所有这些代码。

所以我只是想知道是否有更清晰的方式来写它?试图用扩展TextWatcher的自定义类替换但后来我需要将变量作为变量传递给构造函数EditText并且我不确定这是否是一个好习惯:传递给其他类比你的Activities组件与android有关?

1 个答案:

答案 0 :(得分:0)

创建自定义类:

    let transtion = CircularTransition(containerView: UIView())

然后传递而不是public class CustomTextWatcher implements TextWatcher { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { //empty } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { //empty } @Override public void afterTextChanged(Editable s) { //empty } }