Здесь уже есть много хороших обходных путей! Я хотел добавить то, что мне помогло, чтобы дать варианты тому, у кого может возникнуть эта проблема в будущем.
Я использовал TextWatcher и просто полагался на проверку того, какой элемент в данный момент имеет фокус, когда редактируется EditText. Обратите внимание, что это будет работать, если в вашем приложении пользователь должен фокусироваться на EditText (например, щелкая по нему) перед вводом текста, и вы уверены, что другой элемент будет иметь фокус при использовании setText
в вашем коде.
Как то так
yourEditText.addTextChangedListener(
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) {
if (yourEditText.hasFocus) {
//this is a user input
}
}
@Override
public void afterTextChanged(Editable s) {
}
}
);