События TextWatcher вызываются дважды

В моем приложении я поместил TextWatcher в EditText. Когда я изменяю текст EditText, события TextWatcher вызываются дважды.

Я использую эмулятор для запуска приложения.

Ответ 1

Как выглядит ваш код? это нормальное поведение TextWatcher. Пример:

myInput.addTextChangedListener(new TextWatcher() {
        boolean mToggle = false;

        public void onTextChanged(CharSequence cs, int s, int b, int c) {}

        public void afterTextChanged(Editable editable) {
            if (mToggle) { 
                Toast.makeText(getBaseContext(), "HIT KEY",Toast.LENGTH_LONG).show();
            }
            mToggle = !mToggle;
        }

        public void beforeTextChanged(CharSequence cs, int i, int j, int k) {}
    });

Ответ 2

Моя проблема: я дважды добавил textWatcher mEditText.addTextChangedListener(mTextWatcher), что приводит к вызову его обратных вызовов дважды!

Я добавил textWatcher один раз в onCreate() и один раз в onStart(). Я должен добавить только onStart и удалить в onStop().