如何在android中的TextWatcher的一个方法上实现?

时间:2017-04-19 10:59:34

标签: android android-textwatcher

我有一个应用程序,其中我有很多编辑文本,但在一些编辑文本中我只想实现一个TextWatcher方法。我该怎么做那种善意的指导。

代码: -

private TextWatcher m_textWatcher = 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) {
        isFieldsEmpty();
    }

    @Override
    public void afterTextChanged(Editable s) {
        m_mainLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                int heightDiff = m_mainLayout.getRootView().getHeight() - m_mainLayout.getHeight();
                if (!(heightDiff > RewardUtil.dpToPx(mContext, 200))) { // if more than 200 dp, it's probably a keyboard...
                    m_otpEditText.clearFocus();
                }
            }
        });
    }
};
 m_otpEditText.addTextChangedListener(m_textWatcher);

3 个答案:

答案 0 :(得分:2)

创建metod lke this。

   public static class MyTextWatcher implements TextWatcher {

        private EditText mEditText;

        public MyTextWatcher(EditText editText) {
            mEditText = editText;
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            oldText = mEditText.toString();
        }
        ....
    }

并像这样使用......

  m_otpEditText.addTextChangedListener(new MyTextWatcher(mFirstEditText));

它会帮助你。 感谢。

答案 1 :(得分:1)

首先,您可以按如下方式创建一个类:

public class CustomTextWatcher implements 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) {

    }

    @Override
    public void afterTextChanged(Editable s) {

    }
}

此后,只需覆盖您需要的方法。假设您只需要onTextChanged方法,那么您可以执行以下操作:

m_otpEditText.addTextChangedListener(new CustomTextWatcher() {

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

            }
        });

答案 2 :(得分:0)

TextWatcher类使您可以灵活地覆盖任何需要的方法。如果你真的只需要一个方法,那么只覆盖一个方法,但你必须始终实现所有方法。