Edittext удалить текстовый прослушиватель - PullRequest
0 голосов
/ 09 ноября 2018

Я искал ответы о том, как я могу удалить моего слушателя изменения текста.

вот мой текущий код:

 public void enableTextChangedListener(boolean enableFormatting){
        if (enableFormatting) {
            if (!"1".equals(mAmountEditText.getTag())) {
                mAmountEditText.addTextChangedListener(new StringUtils.NumberTextWatcherForThousand(mAmountEditText));
                mAmountEditText.setTag("1");

  }
        }
        else {
            mAmountEditText.removeTextChangedListener(new StringUtils.NumberTextWatcherForThousand(mAmountEditText));
        }
    }

Если для моего логического параметра enableFormatting задано значение False, текстовый обработчик изменений остается там.

Я могу предоставить класс NumberTextwatcherForThousands, если вы хотите более четкое объяснение моего кода.

1 Ответ

0 голосов
/ 09 ноября 2018

Вам необходимо сохранить ссылку на слушателя, сейчас вы создаете нового слушателя, когда пытаетесь удалить старого. Примерно так:

textWatcher = new StringUtils.NumberTextWatcherForThousand(mAmountEditText);
public void enableTextChangedListener(boolean enableFormatting){
    if (enableFormatting) {
        if (!"1".equals(mAmountEditText.getTag())) {
            mAmountEditText.addTextChangedListener(textWatcher);
            mAmountEditText.setTag("1");

}
    }
    else {
        mAmountEditText.removeTextChangedListener(textWatcher);
    }
}
...