OnFocusChange не всегда работает

В одном из моих занятий у меня есть три EditText и кнопка ОК. OnFocusChangeListener настроен на все три EditText s. Слушатель должен срабатывать каждый раз при потере фокуса.

Переключение между EditText работает отлично. Но если пользователь нажимает кнопку OK, изменение фокуса (потеря фокуса) не происходит для EditText , на котором пользователь сфокусировался перед нажатием кнопки.

Что не так с моим кодом?

private class MyOnFocusChangeListener implements OnFocusChangeListener {
    private EditText editText;

    public MyOnFocusChangeListener(final EditText editText) {
        super();

        this.editText = editText;
    }

    @Override
    public void onFocusChange(final View view, final boolean isFocused) {
        if (!isFocused) {
            if (editText == editText1) {
                // Do a calculation
            } else if (editText == editText2) {
                // Do another calculation
            } else if (editText == editText3) {
                // Do a different calculation
            }
        }
    }
}

@Override
public void onCreate(final Bundle bundle) {
    // ...
    editText1.setOnFocusChangeListener(new MyOnFocusChangeListener(editText1));
    editText2.setOnFocusChangeListener(new MyOnFocusChangeListener(editText2));
    editText3.setOnFocusChangeListener(new MyOnFocusChangeListener(editText3));
    // ...
}
7
задан Michael Petrotta 5 September 2012 в 01:53
поделиться