У меня есть EditText, на котором висит onFocusChangeListener и onEditorActionListener.
Вот код
mEtCustomerPhoneNumber.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override public boolean onEditorAction(TextView v, int iActionId, KeyEvent event) {
if (iActionId == EditorInfo.IME_ACTION_DONE) {
mCustomer = new Customer();
updateCustomerPhone();
}
return false;
}
});
mEtCustomerPhoneNumber.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
mCustomer = new Customer();
updateCustomerPhone();
}
}
});
Так вот проблема в том, что когда пользователь нажимает на EditText и вводит номер, то сразу на раскладке есть кнопка "done", при нажатии на которую выполняется проверка веденного текста. Тут все в порядке, но, когда пользователь нажимает на следующее поле ввода, то на этом EditText срабатывает onFocusChangeListener и опять выполняет проверку, которая только что была выполнена при нажатии кнопки done
Вопрос вот в чем: я понимаю, что можно поставить флаг и все такое, но думаю, может есть какая-то возможность сделать так, чтобы действие выполнялось только один раз?
Не уверен, что до конца понятно изложил, что имею в виду. Если что - спрашивайте.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники