AutoCompleteTextView обнаруживает, когда выбранная запись из списка редактируется пользователем
Я использую AutoCompleteTextView
, чтобы выбрать элемент из длинного списка. Пользователь должен иметь возможность выбирать из списка заранее определенный элемент. Они не должны входить в свой собственный предмет.
То, как я проверяю, чтобы убедиться, что они представляют только элемент из списка, - это использовать setOnItemClickListener
для запуска булевского флага. Проблема заключается в том, что после того, как для логического флага установлено значение true, они все равно могут редактировать выделенный текст элемента. Мне нужно это обнаружить и снова установить флаг boolean. Как мне это сделать. Я видел предложение использовать onKeyDown
, но я не уверен, как это реализовать.
Ответы
Ответ 1
Вы можете добавить прослушанный текст:
autoCompleteTextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
Ответ 2
Внедрите TextWatcher
, который даст вам 3 метода, которые будут постоянно получать обратные вызовы, когда кто-то меняет текст.
Если строка растет, ваш пользователь снова печатает.
Ответ 3
Используйте
AutoCompleteTextView#setOnItemSelectedListener()
- работает как прелесть.