0

我有这个问题,其中我有两个变量 - 'mobile_input' 和 'mobile_input_login'。我也有 2 个 TextUtils。

我不想制作两个不同的 TextUtils,而是制作一个 TextUtils。我在网上搜索过,但没有类似的相关问题。

编码:

mobile_input.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            if (TextUtils.isEmpty(s.toString().trim())) {
                clear2.setVisibility(View.INVISIBLE);

            } else {
                clear2.setVisibility(View.VISIBLE);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
});


mobile_input_login.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            if (TextUtils.isEmpty(s.toString().trim())) {
                clear4.setVisibility(View.INVISIBLE);
            } else {
                clear4.setVisibility(View.VISIBLE);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
});

提前感谢您的回答。

4

1 回答 1

0

您可以创建一个自定义类实现TextWatcher

public class MyTextWatcher implements TextWatcher {

    private View view;

    public MyTextWatcher(View view) {
        this.view = view;
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

        if (TextUtils.isEmpty(s.toString().trim())) {
            view.setVisibility(View.INVISIBLE);
        } else {
            view.setVisibility(View.VISIBLE);
        }
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});

然后在两个文本字段上使用它:

mobile_input.addTextChangedListener(new MyTextWatcher(clear2));
mobile_input_login.addTextChangedListener(new MyTextWatcher(clear4));

我希望这能回答你的问题。

于 2020-09-28T15:14:19.373 回答